From ce84848a258200b7595d2070483b695257d8518c Mon Sep 17 00:00:00 2001 From: Stephanie Gredell Date: Wed, 24 Dec 2025 16:31:04 -0800 Subject: [PATCH] feat(frontend): add embedded game iframe app --- frontend/src/config/apps.ts | 10 +++++++ frontend/src/pages/GameIframeApp.tsx | 44 ++++++++++++++++++++++++++++ frontend/src/pages/LandingPage.tsx | 13 ++++++++ 3 files changed, 67 insertions(+) create mode 100644 frontend/src/pages/GameIframeApp.tsx diff --git a/frontend/src/config/apps.ts b/frontend/src/config/apps.ts index 7821940..80ef676 100644 --- a/frontend/src/config/apps.ts +++ b/frontend/src/config/apps.ts @@ -5,6 +5,7 @@ const VideoApp = lazy(() => import('../pages/VideoApp').then(module => ({ defaul const SpeechSoundsApp = lazy(() => import('../pages/SpeechSoundsApp').then(module => ({ default: module.SpeechSoundsApp }))); const TicTacToeApp = lazy(() => import('../pages/TicTacToeApp').then(module => ({ default: module.TicTacToeApp }))); const DrawingPadApp = lazy(() => import('../pages/DrawingPadApp').then(module => ({ default: module.DrawingPadApp }))); +const GameIframeApp = lazy(() => import('../pages/GameIframeApp').then(module => ({ default: module.GameIframeApp }))); export type App = { id: string; @@ -52,5 +53,14 @@ export const APPS: App[] = [ link: '/drawing-pad', disabled: false, component: DrawingPadApp + }, + { + id: 'iframegame', + name: 'Embedded Game', + description: 'Launch an external game without leaving Kiddos.', + cta: 'Open Game', + link: '/embedded-game', + disabled: false, + component: GameIframeApp } ]; diff --git a/frontend/src/pages/GameIframeApp.tsx b/frontend/src/pages/GameIframeApp.tsx new file mode 100644 index 0000000..07496ae --- /dev/null +++ b/frontend/src/pages/GameIframeApp.tsx @@ -0,0 +1,44 @@ +import { useState } from 'react'; + +const IFRAME_URL = 'https://www.google.com'; + +export function GameIframeApp() { + const [loading, setLoading] = useState(true); + + return ( +
+
+
+

Arcade Corner

+

Embedded Game View

+

+ Enjoy a game inside Kiddos while keeping all of our safety tools and controls handy. +

+
+ +
+ {loading && ( +
+ Loading embedded game... +
+ )} +