import { Button, Input } from "@mui/joy"; import { useEffect, useState } from "react"; import CreateShortcutDialog from "../components/CreateShortcutDialog"; import FilterView from "../components/FilterView"; import Icon from "../components/Icon"; import Navigator from "../components/Navigator"; import ShortcutsContainer from "../components/ShortcutsContainer"; 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 { showCreateShortcutDialog: boolean; } const Home: React.FC = () => { const loadingState = useLoading(); const currentUser = useUserStore().getCurrentUser(); const viewStore = useViewStore(); const { shortcutList } = useAppSelector((state) => state.shortcut); const [state, setState] = useState({ showCreateShortcutDialog: 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 setShowCreateShortcutDialog = (show: boolean) => { setState({ ...state, showCreateShortcutDialog: show, }); }; return ( <>
} endDecorator={} value={filter.search} onChange={(e) => viewStore.setFilter({ search: e.target.value })} />
{loadingState.isLoading ? (
loading
) : orderedShortcutList.length === 0 ? (

No shortcuts found.

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