Skip to content

Commit

Permalink
chore: implement dynamic basename routing for branch-based urls (#871)
Browse files Browse the repository at this point in the history
Co-authored-by: Oleksandr Raspopov <[email protected]>
  • Loading branch information
Alexander-frenki and Oleksandr Raspopov authored Dec 23, 2024
1 parent 391ed5e commit 37e72b5
Show file tree
Hide file tree
Showing 8 changed files with 32 additions and 11 deletions.
3 changes: 2 additions & 1 deletion .env-ui.sample
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ ISSUER_UI_WARNING_MESSAGE=
ISSUER_UI_IPFS_GATEWAY_URL=https://ipfs-proxy-cache.privado.id
ISSUER_UI_SCHEMA_EXPLORER_AND_BUILDER_URL=https://tools.privado.id
ISSUER_UI_DISPLAY_METHOD_BUILDER_URL=https://display-method-dev.privado.id
ISSUER_UI_INSECURE=false
ISSUER_UI_INSECURE=false
ISSUER_UI_BASE_URL=/
4 changes: 3 additions & 1 deletion ui/.env.sample
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ VITE_WARNING_MESSAGE=This Issuer Node is for testing purposes only. It is public

VITE_IPFS_GATEWAY_URL=https://ipfs-proxy-cache.privado.id
VITE_SCHEMA_EXPLORER_AND_BUILDER_URL=https://tools.privado.id
VITE_DISPLAY_METHOD_BUILDER_URL=https://display-method-dev.privado.id
VITE_DISPLAY_METHOD_BUILDER_URL=https://display-method-dev.privado.id

VITE_BASE_URL=/
1 change: 1 addition & 0 deletions ui/scripts/deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ echo "VITE_WARNING_MESSAGE=$ISSUER_UI_WARNING_MESSAGE" >> $ENV_FILENAME
echo "VITE_IPFS_GATEWAY_URL=$ISSUER_UI_IPFS_GATEWAY_URL" >> $ENV_FILENAME
echo "VITE_SCHEMA_EXPLORER_AND_BUILDER_URL=$ISSUER_UI_SCHEMA_EXPLORER_AND_BUILDER_URL" >> $ENV_FILENAME
echo "VITE_DISPLAY_METHOD_BUILDER_URL=$ISSUER_UI_DISPLAY_METHOD_BUILDER_URL" >> $ENV_FILENAME
echo "VITE_BASE_URL"=$ISSUER_UI_BASE_URL >> $ENV_FILENAME

# Build app
cd /app && npm run build
Expand Down
4 changes: 4 additions & 0 deletions ui/src/adapters/env.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ export type EnvInput = {
VITE_API_PASSWORD: string;
VITE_API_URL: string;
VITE_API_USERNAME: string;
VITE_BASE_URL?: string;
VITE_BUILD_TAG?: string;
VITE_DISPLAY_METHOD_BUILDER_URL: string;
VITE_IPFS_GATEWAY_URL: string;
Expand All @@ -23,6 +24,7 @@ export const envParser = getStrictParser<EnvInput, Env>()(
VITE_API_PASSWORD: z.string().min(1),
VITE_API_URL: z.string().url(),
VITE_API_USERNAME: z.string().min(1),
VITE_BASE_URL: z.string().optional(),
VITE_BUILD_TAG: z.string().optional(),
VITE_DISPLAY_METHOD_BUILDER_URL: z.string(),
VITE_IPFS_GATEWAY_URL: z.string().url(),
Expand All @@ -39,6 +41,7 @@ export const envParser = getStrictParser<EnvInput, Env>()(
VITE_API_PASSWORD,
VITE_API_URL,
VITE_API_USERNAME,
VITE_BASE_URL,
VITE_BUILD_TAG,
VITE_DISPLAY_METHOD_BUILDER_URL,
VITE_IPFS_GATEWAY_URL,
Expand All @@ -52,6 +55,7 @@ export const envParser = getStrictParser<EnvInput, Env>()(
url: VITE_API_URL,
username: VITE_API_USERNAME,
},
baseUrl: VITE_BASE_URL,
buildTag: VITE_BUILD_TAG,
displayMethodBuilderUrl: VITE_DISPLAY_METHOD_BUILDER_URL,
ipfsGatewayUrl: VITE_IPFS_GATEWAY_URL,
Expand Down
11 changes: 11 additions & 0 deletions ui/src/components/shared/RouterProvide.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { PropsWithChildren } from "react";
import { BrowserRouter } from "react-router-dom";
import { useEnvContext } from "src/contexts/Env";
import { ROOT_PATH } from "src/utils/constants";

export function RouterProvider(props: PropsWithChildren) {
const env = useEnvContext();
const baseName = env.baseUrl || ROOT_PATH;

return <BrowserRouter basename={baseName}>{props.children}</BrowserRouter>;
}
1 change: 1 addition & 0 deletions ui/src/contexts/Env.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ const defaultEnvContext: Env = {
url: "",
username: "",
},
baseUrl: "",
displayMethodBuilderUrl: "",
ipfsGatewayUrl: "",
issuer: {
Expand Down
1 change: 1 addition & 0 deletions ui/src/domain/env.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ export type Env = {
url: string;
username: string;
};
baseUrl?: string;
buildTag?: string;
displayMethodBuilderUrl: string;
ipfsGatewayUrl: string;
Expand Down
18 changes: 9 additions & 9 deletions ui/src/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ import { extend as extendDayJsWith } from "dayjs";
import relativeTime from "dayjs/plugin/relativeTime";
import { StrictMode } from "react";
import { createRoot } from "react-dom/client";
import { BrowserRouter } from "react-router-dom";

import { Router } from "src/components/shared/Router";
import { RouterProvider } from "src/components/shared/RouterProvide";
import { EnvProvider } from "src/contexts/Env";
import { IdentityProvider } from "src/contexts/Identity";
import { IssuerStateProvider } from "src/contexts/IssuerState";
Expand All @@ -26,18 +26,18 @@ const root = createRoot(rootElement);

root.render(
<StrictMode>
<BrowserRouter>
<ConfigProvider theme={theme}>
<App message={{ duration: TOAST_NOTIFICATION_TIMEOUT }}>
<EnvProvider>
<EnvProvider>
<RouterProvider>
<ConfigProvider theme={theme}>
<App message={{ duration: TOAST_NOTIFICATION_TIMEOUT }}>
<IdentityProvider>
<IssuerStateProvider>
<Router />
</IssuerStateProvider>
</IdentityProvider>
</EnvProvider>
</App>
</ConfigProvider>
</BrowserRouter>
</App>
</ConfigProvider>
</RouterProvider>
</EnvProvider>
</StrictMode>
);

0 comments on commit 37e72b5

Please sign in to comment.