import { useNavigate } from 'react-router-dom'; import { Button, Modal, ModalBody, ModalCloseButton, ModalContent, ModalOverlay } from '@chakra-ui/react'; import { loadDemo, loadProject } from '../../../common/api/db'; import { invalidateAllCaches } from '../../../common/api/utils'; import ExternalLink from '../../../common/components/external-link/ExternalLink'; import { appVersion, discordUrl, documentationUrl, websiteUrl } from '../../../externals'; import ImportProjectButton from './composite/ImportProjectButton'; import WelcomeProjectList from './composite/WelcomeProjectList'; import style from './Welcome.module.scss'; interface WelcomeProps { onClose: () => void; } export default function Welcome(props: WelcomeProps) { const { onClose } = props; const navigate = useNavigate(); /** handle cleanup actions before request closing the modal */ const handleClose = () => { onClose(); }; /** handle loading a selected project */ const handleLoadProject = async (filename: string) => { try { await loadProject(filename); await invalidateAllCaches(); handleClose(); } catch (_error) { /** no error handling for now */ } }; /** handle loading the demo project */ const handleLoadDemo = async () => { try { await loadDemo(); await invalidateAllCaches(); handleClose(); } catch (_error) { /** no error handling for now */ } }; /** handle redirect to create modal */ const handleCallCreate = () => { navigate('/editor?settings=project__create'); handleClose(); }; return (
ontime
Ontime v{appVersion}
Website Read the docs Discord server
Welcome to Ontime
Project Name Last Used
); }