diff --git a/src/common/constant/store.key.ts b/src/common/constant/store.key.ts index da1cb029..1010ac28 100644 --- a/src/common/constant/store.key.ts +++ b/src/common/constant/store.key.ts @@ -88,4 +88,5 @@ export interface StorageKV { pendingOrders: any petState: boolean showNewBadgeForReOrderWidgets: boolean + navbarVisible: boolean } diff --git a/src/layouts/navbar/components/settingsDropdown.tsx b/src/layouts/navbar/components/settingsDropdown.tsx index 7aa2fdcf..da5da755 100644 --- a/src/layouts/navbar/components/settingsDropdown.tsx +++ b/src/layouts/navbar/components/settingsDropdown.tsx @@ -80,7 +80,7 @@ export const SettingsDropdown = ({ setShowSettings }: SettingsProps) => { <>
diff --git a/src/layouts/navbar/friends-list/friends.tsx b/src/layouts/navbar/friends-list/friends.tsx index 703c889a..bd92f514 100644 --- a/src/layouts/navbar/friends-list/friends.tsx +++ b/src/layouts/navbar/friends-list/friends.tsx @@ -101,7 +101,7 @@ export function FriendsList() { <>
diff --git a/src/layouts/navbar/market/market-button.tsx b/src/layouts/navbar/market/market-button.tsx index bb293504..033f69b3 100644 --- a/src/layouts/navbar/market/market-button.tsx +++ b/src/layouts/navbar/market/market-button.tsx @@ -24,7 +24,7 @@ export function MarketButton() { <> diff --git a/src/layouts/navbar/navbar.layout.tsx b/src/layouts/navbar/navbar.layout.tsx index 76b6591d..546ab2f8 100644 --- a/src/layouts/navbar/navbar.layout.tsx +++ b/src/layouts/navbar/navbar.layout.tsx @@ -5,7 +5,6 @@ import { HiHome } from 'react-icons/hi' import { AiOutlineDrag } from 'react-icons/ai' import { getFromStorage, setToStorage } from '@/common/storage' import { listenEvent, callEvent } from '@/common/utils/call-event' -import { getConfigData } from '@/services/config-data/config_data-api' import { SettingModal } from '../setting/setting-modal' import { SettingsDropdown } from './components/settingsDropdown' import { FriendsList } from './friends-list/friends' @@ -15,16 +14,6 @@ import { useAppearanceSetting } from '@/context/appearance.context' import { MarketButton } from './market/market-button' import Analytics from '@/analytics' -interface LogoData { - logoUrl: string | null - content: string | null -} - -const DEFAULT_LOGO_DATA: LogoData = { - logoUrl: null, - content: '

ویجتی‌فای

', -} - const WIDGETIFY_URLS = { website: 'https://widgetify.ir', } as const @@ -32,9 +21,8 @@ const WIDGETIFY_URLS = { export function NavbarLayout(): JSX.Element { const { canReOrderWidget, toggleCanReOrderWidget } = useAppearanceSetting() const [showSettings, setShowSettings] = useState(false) - const [isVisible, setIsVisible] = useState(true) + const [isVisible, setIsVisible] = useState(false) const [tab, setTab] = useState(null) - const [logoData, setLogoData] = useState(DEFAULT_LOGO_DATA) const handleOpenSettings = useCallback( (tabName: 'account' | 'wallpapers' | 'general' | null) => { @@ -46,44 +34,26 @@ export function NavbarLayout(): JSX.Element { const onToggleNavbar = () => { setIsVisible((prev) => !prev) + setToStorage('navbarVisible', !isVisible) Analytics.event(`navbar_${isVisible ? 'closed' : 'opened'}`) } const settingsModalCloseHandler = () => setShowSettings(false) - const sanitizeAndUpdateLogo = useCallback( - (logoUrl: string | null, logoId: string, storeData: any) => { - const newLogoData = { content: '', logoUrl } - setLogoData(newLogoData) - return setToStorage('configData', { - ...storeData, - logo: { id: logoId, content: '', logoUrl: logoUrl }, - }) - }, - [] - ) - - const loadConfig = useCallback(async () => { - try { - const storeData = await getFromStorage('configData') - if (storeData?.logo) { - setLogoData({ - content: storeData.logo.content, - logoUrl: storeData.logo.logoUrl, - }) - } - const data = await getConfigData() - if (data.logo?.logoUrl) { - await sanitizeAndUpdateLogo(data.logo.logoUrl, data.logo.id, storeData) + useEffect(() => { + const load = async () => { + const storedVisibility = await getFromStorage('navbarVisible') + if (typeof storedVisibility === 'boolean') { + setIsVisible(storedVisibility) + } else { + setIsVisible(true) } - } catch {} - }, [sanitizeAndUpdateLogo]) + } - useEffect(() => { + load() const openSettingEvent = listenEvent('openSettings', handleOpenSettings) - loadConfig() return () => openSettingEvent() - }, [handleOpenSettings, loadConfig]) + }, [handleOpenSettings]) return ( <> @@ -126,7 +96,7 @@ export function NavbarLayout(): JSX.Element {
diff --git a/src/layouts/navbar/profile/profile.tsx b/src/layouts/navbar/profile/profile.tsx index a5f153b0..d98a228d 100644 --- a/src/layouts/navbar/profile/profile.tsx +++ b/src/layouts/navbar/profile/profile.tsx @@ -74,7 +74,7 @@ export function ProfileNav() { {!isAuth ? (
diff --git a/src/styles/theme/main.css b/src/styles/theme/main.css index e647bfc5..1d8cb618 100644 --- a/src/styles/theme/main.css +++ b/src/styles/theme/main.css @@ -3,4 +3,10 @@ --brand-primary-rgb: 83, 109, 254; --brand-secondary: #7c8df0; --brand-secondary-rgb: 124, 141, 240; +} + +[data-theme="light"] { + .nav-btn { + @apply text-gray-500 hover:text-gray-700; + } } \ No newline at end of file