هوکها
توابع
کامپوننتهای مرتبه بالا
useTheme
هوک useTheme برای مدیریت و دسترسی به وضعیتها و عملیاتهای مرتبط با تم استفاده میشود.
مثال
نمونهای که نشان میدهد چگونه از هوک useTheme برای تغییر حالتها، تغییر جهتها و تنظیمات چیدمان استفاده میشود.
'use client'
import useTheme from '@/hooks/useTheme'
import { MODE_DARK, MODE_LIGHT } from '@/constants/theme.constant'
import { Direction, LayoutType } from '@/@types/theme'
const Component = () => {
const {
mode,
direction,
layout,
setMode,
setDirection,
setLayout,
setSideNavCollapse,
setPanelExpand,
} = useTheme((state) => ({
mode: state.mode,
direction: state.direction,
layout: state.layout.type,
setMode: state.setMode,
setDirection: state.setDirection,
setLayout: state.setLayout,
setSideNavCollapse: state.setSideNavCollapse,
setPanelExpand: state.setPanelExpand,
}));
const toggleThemeMode = () => {
setMode(mode === MODE_LIGHT ? MODE_DARK : MODE_LIGHT);
};
const toggleDirection = () => {
setDirection(direction === 'ltr' ? 'rtl' : 'ltr');
};
const changeLayout = (layoutType: LayoutType) => {
setLayout(layoutType);
};
const toggleSideNav = () => {
setSideNavCollapse(true); // Collapse the side navigation
};
const togglePanelExpand = () => {
setPanelExpand(true); // Expand the panel
};
return (...)
}
| بازگشتی | توضیحات | نوع | پیشفرض |
|---|---|---|---|
| setSchema | طرح فعلی تم را بهروزرسانی میکند و طرح جدید را اعمال میکند. | (schema: string) => void | - |
| setMode | حالت تم را تنظیم میکند (مثلاً روشن یا تیره) و آن را در سند اعمال میکند. | (mode: Mode) => void | - |
| setSideNavCollapse | وضعیت جمعشدن ناوبری کناری را تغییر میدهد. | (sideNavCollapse: boolean) => void | - |
| setDirection | جهت متن سند را تنظیم میکند (مثلاً راست به چپ یا چپ به راست). | (direction: Direction) => void | - |
| setPanelExpand | پنل را بر اساس مقدار ارائه شده باز یا بسته میکند. | (panelExpand: boolean) => void | - |
| setLayout | نوع چیدمان برنامه را تنظیم میکند (مثلاً عمودی، افقی). | (layout: LayoutType) => void | - |
| mode | حالت فعلی تم (مثلاً روشن یا تیره). | Mode | - |
| direction | جهت فعلی متن (مثلاً راست به چپ یا چپ به راست). | Direction | - |
| layout | نوع چیدمان فعلی برنامه. | LayoutType | - |