diff --git a/eslint-suppressions.json b/eslint-suppressions.json index bbc7eb7f50..fd2418701e 100644 --- a/eslint-suppressions.json +++ b/eslint-suppressions.json @@ -3413,16 +3413,6 @@ "count": 1 } }, - "web/app/components/workflow/block-selector/featured-tools.tsx": { - "no-restricted-properties": { - "count": 2 - } - }, - "web/app/components/workflow/block-selector/featured-triggers.tsx": { - "no-restricted-properties": { - "count": 2 - } - }, "web/app/components/workflow/block-selector/hooks.ts": { "react/set-state-in-effect": { "count": 1 diff --git a/web/app/components/workflow/block-selector/featured-tools.tsx b/web/app/components/workflow/block-selector/featured-tools.tsx index 652399edf9..82a8637cd2 100644 --- a/web/app/components/workflow/block-selector/featured-tools.tsx +++ b/web/app/components/workflow/block-selector/featured-tools.tsx @@ -13,8 +13,8 @@ import Loading from '@/app/components/base/loading' import InstallFromMarketplace from '@/app/components/plugins/install-plugin/install-from-marketplace' import Action from '@/app/components/workflow/block-selector/market-place-plugin/action' import { useGetLanguage } from '@/context/i18n' +import { useLocalStorage } from '@/hooks/use-local-storage' import Link from '@/next/link' -import { isServer } from '@/utils/client' import { formatNumber } from '@/utils/format' import { getMarketplaceUrl } from '@/utils/var' import BlockIcon from '../block-icon' @@ -55,18 +55,7 @@ const FeaturedTools = ({ const previewCardHandle = useMemo(() => createPreviewCardHandle(), []) const [visibleCount, setVisibleCount] = useState(INITIAL_VISIBLE_COUNT) const [visibleCountPlugins, setVisibleCountPlugins] = useState(plugins) - const [isCollapsed, setIsCollapsed] = useState(() => { - if (isServer) - return false - const stored = window.localStorage.getItem(STORAGE_KEY) - return stored === 'true' - }) - - useEffect(() => { - if (isServer) - return - window.localStorage.setItem(STORAGE_KEY, String(isCollapsed)) - }, [isCollapsed]) + const [isCollapsed, setIsCollapsed] = useLocalStorage(STORAGE_KEY, false) if (visibleCountPlugins !== plugins) { setVisibleCountPlugins(plugins) diff --git a/web/app/components/workflow/block-selector/featured-triggers.tsx b/web/app/components/workflow/block-selector/featured-triggers.tsx index bf04efd076..8dec59d8cc 100644 --- a/web/app/components/workflow/block-selector/featured-triggers.tsx +++ b/web/app/components/workflow/block-selector/featured-triggers.tsx @@ -13,8 +13,8 @@ import Loading from '@/app/components/base/loading' import InstallFromMarketplace from '@/app/components/plugins/install-plugin/install-from-marketplace' import Action from '@/app/components/workflow/block-selector/market-place-plugin/action' import { useGetLanguage } from '@/context/i18n' +import { useLocalStorage } from '@/hooks/use-local-storage' import Link from '@/next/link' -import { isServer } from '@/utils/client' import { formatNumber } from '@/utils/format' import { getMarketplaceUrl } from '@/utils/var' import BlockIcon from '../block-icon' @@ -53,18 +53,7 @@ const FeaturedTriggers = ({ const triggerActionPreviewCardHandle = useMemo(() => createPreviewCardHandle(), []) const [visibleCount, setVisibleCount] = useState(INITIAL_VISIBLE_COUNT) const [visibleCountPlugins, setVisibleCountPlugins] = useState(plugins) - const [isCollapsed, setIsCollapsed] = useState(() => { - if (isServer) - return false - const stored = window.localStorage.getItem(STORAGE_KEY) - return stored === 'true' - }) - - useEffect(() => { - if (isServer) - return - window.localStorage.setItem(STORAGE_KEY, String(isCollapsed)) - }, [isCollapsed]) + const [isCollapsed, setIsCollapsed] = useLocalStorage(STORAGE_KEY, false) if (visibleCountPlugins !== plugins) { setVisibleCountPlugins(plugins)