commit 22feef1aa742a613d77e6f29f1f4cd9dadf68490
parent 0bd2f72c27043bcadd0ac366eb4f5e55ac09ccbc
Author: Sebastian <sebasjm@gmail.com>
Date: Tue, 29 Jun 2021 15:54:18 -0300
fix routing for non-default instance
Diffstat:
3 files changed, 25 insertions(+), 15 deletions(-)
diff --git a/packages/frontend/src/ApplicationReadyRoutes.tsx b/packages/frontend/src/ApplicationReadyRoutes.tsx
@@ -29,6 +29,7 @@ import { NotYetReadyAppMenu, Menu, NotificationCard } from './components/menu';
import { useTranslator } from './i18n';
import { createHashHistory } from 'history';
import { useState } from 'preact/hooks';
+import { CreateStockNoRestock } from './components/form/InputStock.stories';
export function ApplicationReadyRoutes(): VNode {
const i18n = useTranslator();
@@ -61,6 +62,9 @@ export function ApplicationReadyRoutes(): VNode {
if (result.loading) return <NotYetReadyAppMenu title="Loading..." />
+ let admin = true
+ let instanceNameByBackendURL = undefined
+
if (!result.ok) {
const path = new URL(backendURL).pathname
const match = INSTANCE_ID_LOOKUP.exec(path)
@@ -80,24 +84,22 @@ export function ApplicationReadyRoutes(): VNode {
</Fragment>
}
- return <Fragment>
- <Menu instance={match[1]} onLogout={clearTokenAndGoToRoot} setInstanceName={() => null} />
- <InstanceRoutes id={match[1]} setInstanceName={() => null} />
- </Fragment>
+ admin = false
+ instanceNameByBackendURL = match[1]
}
const history = createHashHistory()
return <Router history={history}>
- <Route default component={DefaultMainRoute} clearTokenAndGoToRoot={clearTokenAndGoToRoot} />
+ <Route default component={DefaultMainRoute} clearTokenAndGoToRoot={clearTokenAndGoToRoot} admin={admin} instanceNameByBackendURL={instanceNameByBackendURL} />
</Router>
}
-function DefaultMainRoute({ clearTokenAndGoToRoot, instance }: any) {
- const [instanceName, setInstanceName] = useState(instance || 'default')
+function DefaultMainRoute({ clearTokenAndGoToRoot, instance, admin, instanceNameByBackendURL }: any) {
+ const [instanceName, setInstanceName] = useState(instanceNameByBackendURL || instance || 'default')
return <Fragment>
- <Menu instance={instanceName} admin onLogout={clearTokenAndGoToRoot} setInstanceName={setInstanceName} />
- <InstanceRoutes admin id={instanceName} setInstanceName={setInstanceName} />
+ <Menu instance={instanceName} admin={admin} onLogout={clearTokenAndGoToRoot} setInstanceName={setInstanceName} />
+ <InstanceRoutes admin={admin} id={instanceName} setInstanceName={setInstanceName} />
</Fragment>
}
diff --git a/packages/frontend/src/hooks/order.ts b/packages/frontend/src/hooks/order.ts
@@ -108,10 +108,14 @@ export function useOrderAPI(): OrderAPI {
}
export function useOrderDetails(oderId: string): HttpResponse<MerchantBackend.Orders.MerchantOrderStatusResponse> {
- const { url: baseUrl } = useBackendContext();
- const { token, id: instanceId, admin } = useInstanceContext();
+ const { url: baseUrl, token: baseToken } = useBackendContext();
+ const { token: instanceToken, id, admin } = useInstanceContext();
- const url = !admin ? baseUrl : `${baseUrl}/instances/${instanceId}`
+ const { url, token } = !admin ? {
+ url: baseUrl, token: baseToken
+ } : {
+ url: `${baseUrl}/instances/${id}`, token: instanceToken
+ };
const { data, error, isValidating } = useSWR<HttpResponseOk<MerchantBackend.Orders.MerchantOrderStatusResponse>, HttpError>([`/private/orders/${oderId}`, token, url], fetcher, {
refreshInterval:0,
diff --git a/packages/frontend/src/hooks/product.ts b/packages/frontend/src/hooks/product.ts
@@ -173,10 +173,14 @@ export function useInstanceProducts(): HttpResponse<(MerchantBackend.Products.Pr
}
export function useProductDetails(productId: string): HttpResponse<MerchantBackend.Products.ProductDetail> {
- const { url: baseUrl } = useBackendContext();
- const { token, id: instanceId, admin } = useInstanceContext();
+ const { url: baseUrl, token: baseToken } = useBackendContext();
+ const { token: instanceToken, id, admin } = useInstanceContext();
- const url = !admin ? baseUrl : `${baseUrl}/instances/${instanceId}`
+ const { url, token } = !admin ? {
+ url: baseUrl, token: baseToken
+ } : {
+ url: `${baseUrl}/instances/${id}`, token: instanceToken
+ };
const { data, error, isValidating } = useSWR<HttpResponseOk<MerchantBackend.Products.ProductDetail>, HttpError>(
[`/private/products/${productId}`, token, url], fetcher, {