From c852aa92f84d0c18b1bd7361163498a542461d45 Mon Sep 17 00:00:00 2001 From: Pawel Zelawski Date: Thu, 10 Apr 2025 10:55:22 +0200 Subject: feat(client): implement react frontend application - Created main entry point `src/client/main.tsx`. - Created main `App` component `src/client/App.tsx`. - Implemented state management (`initial`, `waiting`, `success`, `failed`) using `useState`. - Implemented `handleStart` to call backend `/api/digiid/start` and transition to `waiting` state. - Implemented `useEffect` hook for polling backend `/api/digiid/status/:sessionId` in `waiting` state. - Updates UI state based on polling response (`success`/`failed`). - Handles polling errors and cleanup. - Implemented `handleReset` to return to `initial` state. - Implemented views for each state: - `initial`: Welcome message, Start button. - `waiting`: QR code display, status message, Cancel button. - `success`: Success message, verified address, address type, Start Over button. - `failed`: Failure message, error details, Try Again button. - Added client-side address type helper `getDigiByteAddressType` in `src/client/utils.ts`. - Added basic CSS styling in `src/client/index.css` with light/dark mode support. - Added frontend-related scripts (`dev:frontend`, `dev`, `build`, `lint`, `preview`) to `package.json`. - Fixed linter type issue with `setInterval` return value. --- src/client/main.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/client/main.tsx (limited to 'src/client/main.tsx') diff --git a/src/client/main.tsx b/src/client/main.tsx new file mode 100644 index 0000000..b895c80 --- /dev/null +++ b/src/client/main.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import App from './App'; +import './index.css'; // We'll create this file later for styles + +ReactDOM.createRoot(document.getElementById('root')!).render( + + + +); \ No newline at end of file -- cgit v1.2.3