import { Button, Input } from "@mui/joy"; import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import CreateShortcutDrawer from "../components/CreateShortcutDrawer"; import FilterView from "../components/FilterView"; import Icon from "../components/Icon"; import ShortcutsContainer from "../components/ShortcutsContainer"; import ShortcutsNavigator from "../components/ShortcutsNavigator"; import ViewSetting from "../components/ViewSetting"; import useLoading from "../hooks/useLoading"; import { shortcutService } from "../services"; import { useAppSelector } from "../stores"; import useUserStore from "../stores/v1/user"; import useViewStore, { getFilteredShortcutList, getOrderedShortcutList } from "../stores/v1/view"; interface State { showCreateShortcutDrawer: boolean; } const Home: React.FC = () => { const { t } = useTranslation(); const loadingState = useLoading(); const currentUser = useUserStore().getCurrentUser(); const viewStore = useViewStore(); const { shortcutList } = useAppSelector((state) => state.shortcut); const [state, setState] = useState({ showCreateShortcutDrawer: false, }); const filter = viewStore.filter; const filteredShortcutList = getFilteredShortcutList(shortcutList, filter, currentUser); const orderedShortcutList = getOrderedShortcutList(filteredShortcutList, viewStore.order); useEffect(() => { Promise.all([shortcutService.getMyAllShortcuts()]).finally(() => { loadingState.setFinish(); }); }, []); const setShowCreateShortcutDrawer = (show: boolean) => { setState({ ...state, showCreateShortcutDrawer: show, }); }; return ( <>
} endDecorator={} value={filter.search} onChange={(e) => viewStore.setFilter({ search: e.target.value })} />
{loadingState.isLoading ? (
{t("common.loading")}
) : orderedShortcutList.length === 0 ? (

No shortcuts found.

) : ( )}
{state.showCreateShortcutDrawer && ( setShowCreateShortcutDrawer(false)} onConfirm={() => setShowCreateShortcutDrawer(false)} /> )} ); }; export default Home;