import { DEBUG, DEBUG_LINK, LESSON_LINK, QUIZ_MAIN_MENU_LINK, RECORD_LINK, SETTING_LINK } from './constants'; /* Core CSS required for Ionic components to work properly */ import '@ionic/react/css/core.css'; /* Basic CSS for apps built with Ionic */ import '@ionic/react/css/normalize.css'; import '@ionic/react/css/structure.css'; /* Optional CSS utils that can be commented out */ import '@ionic/react/css/padding.css'; import '@ionic/react/css/float-elements.css'; import '@ionic/react/css/text-alignment.css'; import '@ionic/react/css/text-transformation.css'; import '@ionic/react/css/flex-utils.css'; import '@ionic/react/css/typography.css'; import '@ionic/react/css/display.css'; /** * Ionic Dark Mode * ----------------------------------------------------- * For more info, please see: * https://ionicframework.com/docs/theming/dark-mode */ /* import '@ionic/react/css/palettes/dark.always.css'; */ /* import '@ionic/react/css/palettes/dark.class.css'; */ // import '@ionic/react/css/palettes/dark.system.css'; /* Theme variables */ import './theme/variables.css'; import './debug.css'; import './style.css'; import './google_fonts.css'; import { App as CapacitorApp } from '@capacitor/app'; import { IonApp, IonIcon, IonLabel, IonRouterOutlet, IonTabBar, IonTabButton, IonTabs, setupIonicReact, useIonRouter, } from '@ionic/react'; import { IonReactRouter } from '@ionic/react-router'; import { bookOutline, bug, heartOutline, newspaperOutline, settingsOutline } from 'ionicons/icons'; import { useTranslation } from 'react-i18next'; import ConfirmUserExit from './components/ConfirmUserExit'; import { DisableUserTap } from './components/DisableUserTap'; import ContextMeta from './contexts'; import { useAppStateContext } from './contexts/AppState'; import { useMyIonQuizContext } from './contexts/MyIonQuiz'; import { RouteConfig } from './RouteConfig'; let active_color = 'tomato'; let inactive_color = 'gray'; CapacitorApp.addListener('appStateChange', ({ isActive }) => { console.log('App state changed. Is active?', isActive); }); CapacitorApp.addListener('backButton', ({ canGoBack }) => { if (!canGoBack) { // CapacitorApp.minimizeApp(); // alert('blablabla'); } }); setupIonicReact(); const TabButtons: React.FC = () => { let router = useIonRouter(); const { t } = useTranslation(); let { url_push_after_user_confirm, setURLPushAfterUserConfirm, setShowConfirmUserExit, listening_practice_in_progress, setListeningPracticeInProgress, matching_frenzy_in_progress, connective_revision_in_progress, tab_active, setTabActive, } = useAppStateContext(); const { resetListeningPracticeCorrectionList } = useMyIonQuizContext(); function goSwitchPage(url: string) { if (listening_practice_in_progress || matching_frenzy_in_progress || connective_revision_in_progress) { if (url != QUIZ_MAIN_MENU_LINK) { setURLPushAfterUserConfirm(url); setShowConfirmUserExit(true); } } else { setTabActive(url); router.push(url, 'none', 'replace'); } } return ( <> goSwitchPage(LESSON_LINK)} style={{ color: tab_active == LESSON_LINK ? active_color : inactive_color }} > {/* */} goSwitchPage(QUIZ_MAIN_MENU_LINK)} style={{ color: tab_active == QUIZ_MAIN_MENU_LINK ? active_color : inactive_color }} > goSwitchPage(QUIZ_MAIN_MENU_LINK)} style={{ color: tab_active == QUIZ_MAIN_MENU_LINK ? active_color : inactive_color }} > {/* */} goSwitchPage(RECORD_LINK)} style={{ color: tab_active == RECORD_LINK ? active_color : inactive_color }} > {/* */} {/* 003_remove_setting_screen, hide setting on bottom tabs */} goSwitchPage(SETTING_LINK)} style={{ color: tab_active == SETTING_LINK ? active_color : inactive_color }} > {DEBUG ? ( goSwitchPage(DEBUG_LINK)} // href={DEBUG_LINK} > ) : ( <> )} ); }; const App: React.FC = () => { return (
AI
{/* */} {/* */}
); }; export default App;