diff --git a/TODO b/TODO index 6c4ee6b..2587734 100644 --- a/TODO +++ b/TODO @@ -11,4 +11,6 @@ - try/catch where needed in client code - generate state and check it against the state returned from lichess https://lichess.org/api#tag/oauth/GET/oauth - checkbox and toggle disabled states -- 404 \ No newline at end of file +- 404 page +- lichess data with zod validation +- react query on for study and chapter load, to allow caching \ No newline at end of file diff --git a/src/components/Error/GenericErrorView.tsx b/src/components/GenericErrorView.tsx similarity index 100% rename from src/components/Error/GenericErrorView.tsx rename to src/components/GenericErrorView.tsx diff --git a/src/components/LoadingView.tsx b/src/components/LoadingView.tsx new file mode 100644 index 0000000..c857f28 --- /dev/null +++ b/src/components/LoadingView.tsx @@ -0,0 +1,34 @@ +interface IProps { + title?: string; + description?: string; +} + +const LoadingView = ({ title, description }: IProps) => { + return ( +
+ {description || "Please wait a moment while we load the data."} +
+ + {/* Decorative background glow matching your layout */} + +