diff options
author | Pawel Zelawski <pawel.zelawski@outlook.com> | 2025-04-10 10:55:22 +0200 |
---|---|---|
committer | Pawel Zelawski <pawel.zelawski@outlook.com> | 2025-04-10 10:55:22 +0200 |
commit | c852aa92f84d0c18b1bd7361163498a542461d45 (patch) | |
tree | feb1b34c35c4e7a2d35c70dba35b3367c7f638b0 /src/client/utils.ts | |
parent | 326caf949ec8622c04b0e3352c5eac5370f161e4 (diff) |
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.
Diffstat (limited to 'src/client/utils.ts')
-rw-r--r-- | src/client/utils.ts | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/client/utils.ts b/src/client/utils.ts new file mode 100644 index 0000000..cd9c8ba --- /dev/null +++ b/src/client/utils.ts @@ -0,0 +1,20 @@ +// Simple utility to determine DigiByte address type based on prefix + +export type DigiByteAddressType = 'DigiByte (DGB)' | 'DigiAsset (DGA)' | 'Unknown'; + +export function getDigiByteAddressType(address: string | undefined | null): DigiByteAddressType { + if (!address) { + return 'Unknown'; + } + if (address.startsWith('dgb1')) { + return 'DigiByte (DGB)'; + } + // Add other prefixes if DigiAssets use a distinct one, e.g., 'dga1' + // For now, assume non-DGB is DigiAsset, but this might need refinement + // depending on actual DigiAsset address formats. + else { + // Assuming DigiAssets might start differently or be the fallback + // This is a placeholder assumption. + return 'DigiAsset (DGA)'; // Placeholder - ADJUST BASED ON ACTUAL DGA PREFIX + } +}
\ No newline at end of file |