5180 fichiers 38.5 Mo 0 téléchargements 238 vues mis à jour il y a 5 heures ui
nitro-v36-with-renderer-v36 / src / hooks / catalog / useCatalogDisplayPreferences.ts
useCatalogDisplayPreferences.ts 1.3 Ko Télécharger le fichier
import { registerSharedHook, useSharedHook } from '@/state/useSharedHook';
import { LocalStorageKeys } from '../../api';
import { useLocalStorage } from '../useLocalStorage';

export type CatalogGridDensity = 'compact' | 'standard' | 'large';

export interface CatalogGridMetrics {
    columnCount: number;
    columnMinHeight: number;
    columnMinWidth: number;
}

export const getCatalogGridMetrics = (density: CatalogGridDensity): CatalogGridMetrics => {
    switch (density) {
        case 'compact':
            return { columnCount: 7, columnMinHeight: 64, columnMinWidth: 45 };
        case 'large':
            return { columnCount: 5, columnMinHeight: 92, columnMinWidth: 68 };
        case 'standard':
        default:
            return { columnCount: 6, columnMinHeight: 74, columnMinWidth: 53 };
    }
};

const useCatalogDisplayPreferencesState = () => {
    const [density, setDensity] = useLocalStorage<CatalogGridDensity>(LocalStorageKeys.CATALOG_GRID_DENSITY, 'standard');
    const [showTilePrices, setShowTilePrices] = useLocalStorage(LocalStorageKeys.CATALOG_SHOW_TILE_PRICES, true);

    return { density, setDensity, showTilePrices, setShowTilePrices };
};

export const useCatalogDisplayPreferences = () => useSharedHook(useCatalogDisplayPreferencesState);

registerSharedHook(useCatalogDisplayPreferencesState);
15Sujets
1Dépôts
20Membres
2En ligne
Profile
Inscrit
Dernière visite
Messages
0
Votes positifs
0
Votes négatifs
0

Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience. en savoir plus

Autoriser