Update GIF export options to remove 10 FPS and small size

Removed 10 FPS from valid GIF frame rates and the 'small' size preset from GIF export options. Updated UI grid layouts and tests to reflect these changes for consistency.
This commit is contained in:
Nikhil Solanki committed 2026-01-11 21:50:42 +05:30
1 parent 658457553e
commit f7cfb07031
3 files changed
+7 -9

No files matched your search

@@ -649,7 +649,7 @@ export function SettingsPanel({
{/* Frame Rate */}
<div>
<div className="mb-1.5 text-xs font-medium text-slate-400">Frame Rate</div>
<div className="bg-white/5 border border-white/5 p-1 w-full grid grid-cols-5 h-auto rounded-xl">
<div className="bg-white/5 border border-white/5 p-1 w-full grid grid-cols-4 h-auto rounded-xl">
{GIF_FRAME_RATES.map((rate) => (
<button
key={rate.value}
@@ -670,7 +670,7 @@ export function SettingsPanel({
{/* Size Preset */}
<div>
<div className="mb-1.5 text-xs font-medium text-slate-400">Output Size</div>
<div className="bg-white/5 border border-white/5 p-1 w-full grid grid-cols-4 h-auto rounded-xl">
<div className="bg-white/5 border border-white/5 p-1 w-full grid grid-cols-3 h-auto rounded-xl">
{Object.entries(GIF_SIZE_PRESETS).map(([key, preset]) => (
<button
key={key}
+2 -2
View File
@@ -10,7 +10,7 @@ import {
* Property 1: Valid Frame Rate Acceptance
*
* *For any* frame rate value, the GIF_Exporter SHALL accept it if and only if
* it is one of the valid presets (10, 15, 20, 25, 30 FPS). Invalid frame rates
* it is one of the valid presets (15, 20, 25, 30 FPS). Invalid frame rates
* should be rejected with an error.
*
* **Validates: Requirements 2.2**
@@ -20,7 +20,7 @@ import {
describe('GIF Export Types', () => {
describe('Property 1: Valid Frame Rate Acceptance', () => {
// Property test: Valid frame rates should be accepted
it('should accept all valid frame rates (10, 15, 20, 25, 30)', () => {
it('should accept all valid frame rates (15, 20, 25, 30)', () => {
fc.assert(
fc.property(
fc.constantFrom(...VALID_GIF_FRAME_RATES),
+3 -5
View File
@@ -32,9 +32,9 @@ export type ExportQuality = 'medium' | 'good' | 'source';
// GIF Export Types
export type ExportFormat = 'mp4' | 'gif';
export type GifFrameRate = 10 | 15 | 20 | 25 | 30;
export type GifFrameRate = 15 | 20 | 25 | 30;
export type GifSizePreset = 'small' | 'medium' | 'large' | 'original';
export type GifSizePreset = 'medium' | 'large' | 'original';
export interface GifExportConfig {
frameRate: GifFrameRate;
@@ -53,14 +53,12 @@ export interface ExportSettings {
}
export const GIF_SIZE_PRESETS: Record<GifSizePreset, { maxHeight: number; label: string }> = {
small: { maxHeight: 480, label: 'Small (480p)' },
medium: { maxHeight: 720, label: 'Medium (720p)' },
large: { maxHeight: 1080, label: 'Large (1080p)' },
original: { maxHeight: Infinity, label: 'Original' },
};
export const GIF_FRAME_RATES: { value: GifFrameRate; label: string }[] = [
{ value: 10, label: '10 FPS - Smaller file' },
{ value: 15, label: '15 FPS - Balanced' },
{ value: 20, label: '20 FPS - Smooth' },
{ value: 25, label: '25 FPS - Very smooth' },
@@ -68,7 +66,7 @@ export const GIF_FRAME_RATES: { value: GifFrameRate; label: string }[] = [
];
// Valid frame rates for validation
export const VALID_GIF_FRAME_RATES: readonly GifFrameRate[] = [10, 15, 20, 25, 30] as const;
export const VALID_GIF_FRAME_RATES: readonly GifFrameRate[] = [15, 20, 25, 30] as const;
export function isValidGifFrameRate(rate: number): rate is GifFrameRate {
return VALID_GIF_FRAME_RATES.includes(rate as GifFrameRate);