App |
This is the root component of the application. It sets up the main layout and routing, and wraps the application in necessary context providers. |
components/ChatBubble |
This component displays a chat bubble. |
components/DictDisplays |
This file contains specialized components for displaying different types of dictionary data, such as JMdict entries, proper noun entries, and Kanji information. |
components/NavigationMenu |
This component provides a navigation menu for the application. It includes a hamburger button, a side panel with navigation links, and a profile manager. |
components/SettingsDrawer |
This component provides a settings drawer for the video player. It allows the user to load video and subtitle files, generate subtitles, convert videos to MP4, and customize the appearance of the subtitles. |
components/SubtitlePlayer |
This component is a video player with interactive subtitles. It displays subtitles on top of the video, and allows the user to click on words to get more information about them. |
components/WordDialog |
This component displays a dialog with information about a word. It includes a GPT-powered explanation, dictionary definitions, and the ability to save a clip of the word being used. |
constants/user-page |
This file contains constants for the user page. |
contexts/PlayerContext |
This file defines the context for managing the state of the video player. It allows the player's state (e.g., loaded video, subtitles, settings) to persist across component mounts and unmounts, enabling navigating between pages. |
contexts/ProfileContext |
This file provides a context for managing the user's profile. |
contexts/SubtitleSettingsContext |
This file provides a context for managing the subtitle settings. |
main |
This is the entry point of the application. It sets up the React application, including providers and routing. It also includes a fix for handling client-side routing on static hosting services like GitHub Pages. |
pages/DictionaryPage |
This file contains the DictionaryPage component, which allows users to search the dictionary for words and kanji using wildcard patterns. It displays results in a tabbed interface and shows detailed information when a result is selected. |
pages/HomePage |
This component is the home page of the application. |
pages/Icons |
This file contains the icon components. |
pages/NotFoundPage |
This component is the 404 page of the application. |
pages/PlayerPage |
This component is the player page of the application. It integrates the settings drawer and the main subtitle player, using the global PlayerContext to manage and persist player state across navigation. |
pages/SavedPage |
This component displays the user's saved clips. It allows the user to view, delete, and export their clips to Anki. |
pages/TextPage |
This component is the text analyzer page of the application. It allows the user to input a text and have it tokenized and displayed with furigana. The user can then click on the tokens to get more information about them. |
pages/TranscribePage |
This component is the transcribe page of the application. It allows the user to record or upload audio and have it transcribed. |
pages/UserPage |
This component is the user page of the application. It allows the user to view their profile, files, transcripts, and GPT template. |
services/api |
This file contains the apiFetch function, which is a wrapper around the native fetch function. |
services/dictApi |
This file contains functions for querying the dictionary API. |
services/tokenizer |
This file contains the tokenizer for the application. |
types/types |
This file contains all the type definitions for the application. |
utils/apiErrorToaster |
This file contains a function for displaying API errors as toasts. |
utils/clipCreator |
Provides a utility for creating and saving video clips. This module orchestrates the recording process, data preparation, and API submission. |
utils/fileUtils |
This file contains utility functions for working with files. |
utils/formatters |
This file contains formatter functions. |
utils/languageUtils |
This file contains utility functions for working with Japanese characters. |
utils/mediaRecorder |
Provides a cross-browser utility for recording a MediaStream from an HTMLVideoElement. It uses the native captureStream on the HTMLVideoElement iself where available and falls back to a HTMLCanvasElement based approach for browsers like iOS Safari that do not support it. It also automatically selects a supported MIME type for MediaRecorder by checking availability. |