merchant-backoffice

ZZZ: Inactive/Deprecated
Log | Files | Refs | Submodules | README

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:
Mpackages/frontend/src/ApplicationReadyRoutes.tsx | 20+++++++++++---------
Mpackages/frontend/src/hooks/order.ts | 10+++++++---
Mpackages/frontend/src/hooks/product.ts | 10+++++++---
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, {