Skip to content

Index

Modules

Module Description
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.