import React, { Dispatch, SetStateAction, useEffect } from "react"; import useLocalSettingsStore from "@/store/localSettings"; import { ViewMode } from "@/types/global"; import { dropdownTriggerer } from "@/lib/client/utils"; import { useTranslation } from "next-i18next"; type Props = { viewMode: ViewMode; setViewMode: Dispatch>; }; export default function ViewDropdown({ viewMode, setViewMode }: Props) { const { settings, updateSettings } = useLocalSettingsStore((state) => state); const { t } = useTranslation(); const onChangeViewMode = ( e: React.MouseEvent, mode: ViewMode ) => { setViewMode(mode); }; const toggleShowSetting = (setting: keyof typeof settings.show) => { const newShowSettings = { ...settings.show, [setting]: !settings.show[setting], }; updateSettings({ show: newShowSettings }); }; useEffect(() => { updateSettings({ viewMode }); }, [viewMode, updateSettings]); return (
{viewMode === ViewMode.Card ? ( ) : viewMode === ViewMode.Masonry ? ( ) : ( )}

    {t("view")}

    {t("show")}

    {Object.entries(settings.show) .filter((e) => settings.viewMode === ViewMode.List // Hide tags, image, icon, and description checkboxes in list view ? e[0] !== "tags" && e[0] !== "image" && e[0] !== "icon" && e[0] !== "description" : settings.viewMode === ViewMode.Card // Hide tags and description checkboxes in card view ? e[0] !== "tags" && e[0] !== "description" : true ) .map(([key, value]) => (
  • ))}
); }