feat: add claim route deep linking support

- Add claim route to deep link schema
- Add claim view test to deeplink tests
- Update build docs for clean web builds
- Add rm -rf dist to build steps

Technical Changes:
- Add claim schema with id parameter
- Add claim route test using generated claim ID
- Add clean step before web/capacitor builds
- Update Android build instructions

This adds support for deep linking to claim views and
improves the build process reliability by ensuring clean
builds. The claim route allows direct navigation to claim
details via external links.
This commit is contained in:
Matthew Raymer
2025-03-10 13:00:54 +00:00
parent 4c8220f2a5
commit cbf704dcf7
4 changed files with 92 additions and 59 deletions

View File

@@ -135,6 +135,7 @@ Prerequisites: Android Studio with SDK installed
1. Build the web assets:
```bash
rm -rf dist
npm run build:web
npm run build:capacitor
```
@@ -228,10 +229,11 @@ configurations.all {
## Building Android from the console
```bash
cd android
./gradlew clean
./gradlew build -Dlint.baselines.continue=true
npx cap
cd ..
npx cap run android
```
## Development

View File

@@ -110,11 +110,18 @@ export class DeepLinkHandler {
query: Record<string, string>,
): Promise<void> {
const routeMap: Record<string, string> = {
"user-profile": "user-profile",
"project": "project",
"onboard-meeting-setup": "onboard-meeting-setup",
"invite-one-accept": "invite-one-accept",
"contact-import": "contact-import",
"confirm-gift": "confirm-gift",
"claim": "claim",
"claim-cert": "claim-cert",
"claim-add-raw": "claim-add-raw",
"contact-edit": "contact-edit",
"contacts": "contacts",
did: "did"
"did": "did"
};
const routeName = routeMap[path];

View File

@@ -36,6 +36,27 @@ export const baseUrlSchema = z.object({
// Parameter validation schemas for each route type
export const deepLinkSchemas = {
"user-profile": z.object({
id: z.string()
}),
"project-details": z.object({
id: z.string()
}),
"onboard-meeting-setup": z.object({
id: z.string()
}),
"invite-one-accept": z.object({
id: z.string()
}),
"contact-import": z.object({
jwt: z.string()
}),
"confirm-gift": z.object({
id: z.string()
}),
"claim": z.object({
id: z.string()
}),
"claim-cert": z.object({
id: z.string()
}),

View File

@@ -104,6 +104,9 @@ main() {
CONTACTS=$(cat .generated/contacts.json)
# 1. Claim-based deeplinks
execute_deeplink "timesafari://claim/$(jq -r .claim_id <<< "$CLAIM_DETAILS")" \
"Testing claim view"
execute_deeplink "timesafari://claim-cert/$(jq -r .claim_id <<< "$CLAIM_DETAILS")" \
"Testing claim certificate view"