diff --git a/apps/admin-ui/.expo/types/router.d.ts b/apps/admin-ui/.expo/types/router.d.ts index 767f20b..6390fc7 100644 --- a/apps/admin-ui/.expo/types/router.d.ts +++ b/apps/admin-ui/.expo/types/router.d.ts @@ -6,9 +6,9 @@ export * from 'expo-router'; declare module 'expo-router' { export namespace ExpoRouter { export interface __routes { - hrefInputParams: { pathname: Router.RelativePathString, params?: Router.UnknownInputParams } | { pathname: Router.ExternalPathString, params?: Router.UnknownInputParams } | { pathname: `/`; params?: Router.UnknownInputParams; } | { pathname: `/login`; params?: Router.UnknownInputParams; } | { pathname: `/_sitemap`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/address-management` | `/address-management`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/complaints` | `/complaints`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/coupons/create` | `/coupons/create`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/coupons` | `/coupons`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/coupons/reserved-coupons` | `/coupons/reserved-coupons`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/customize-app/all-items-order` | `/customize-app/all-items-order`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/customize-app` | `/customize-app`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/customize-app/popular-items` | `/customize-app/popular-items`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/dashboard` | `/dashboard`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/dashboard-banners/create` | `/dashboard-banners/create`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/dashboard-banners` | `/dashboard-banners`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/manage-orders` | `/manage-orders`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/manage-orders/delivery-sequences` | `/manage-orders/delivery-sequences`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/manage-orders/orders` | `/manage-orders/orders`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/prices-overview` | `/prices-overview`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-groupings/create` | `/product-groupings/create`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-groupings` | `/product-groupings`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-tags/add` | `/product-tags/add`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-tags` | `/product-tags`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-tags/edit` | `/product-tags/edit`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/products/add` | `/products/add`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/products/edit` | `/products/edit`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/products` | `/products`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/rebalance-orders` | `/rebalance-orders`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/send-notifications` | `/send-notifications`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/slots/add` | `/slots/add`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/slots` | `/slots`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/slots/slot-details` | `/slots/slot-details`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/stores/add` | `/stores/add`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/stores/edit` | `/stores/edit`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/stores` | `/stores`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/user-management` | `/user-management`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/users` | `/users`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/vendor-snippets` | `/vendor-snippets`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/coupons/edit/[id]` | `/coupons/edit/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/dashboard-banners/edit/[id]` | `/dashboard-banners/edit/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/manage-orders/order-details/[id]` | `/manage-orders/order-details/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/product-groupings/edit/[id]` | `/product-groupings/edit/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/products/detail/[id]` | `/products/detail/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/slots/edit/[id]` | `/slots/edit/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/user-management/[id]` | `/user-management/[id]`, params: Router.UnknownInputParams & { id: string | number; } }; - hrefOutputParams: { pathname: Router.RelativePathString, params?: Router.UnknownOutputParams } | { pathname: Router.ExternalPathString, params?: Router.UnknownOutputParams } | { pathname: `/`; params?: Router.UnknownOutputParams; } | { pathname: `/login`; params?: Router.UnknownOutputParams; } | { pathname: `/_sitemap`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/address-management` | `/address-management`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/complaints` | `/complaints`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/coupons/create` | `/coupons/create`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/coupons` | `/coupons`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/coupons/reserved-coupons` | `/coupons/reserved-coupons`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/customize-app/all-items-order` | `/customize-app/all-items-order`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/customize-app` | `/customize-app`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/customize-app/popular-items` | `/customize-app/popular-items`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/dashboard` | `/dashboard`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/dashboard-banners/create` | `/dashboard-banners/create`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/dashboard-banners` | `/dashboard-banners`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/manage-orders` | `/manage-orders`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/manage-orders/delivery-sequences` | `/manage-orders/delivery-sequences`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/manage-orders/orders` | `/manage-orders/orders`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/prices-overview` | `/prices-overview`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/product-groupings/create` | `/product-groupings/create`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/product-groupings` | `/product-groupings`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/product-tags/add` | `/product-tags/add`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/product-tags` | `/product-tags`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/product-tags/edit` | `/product-tags/edit`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/products/add` | `/products/add`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/products/edit` | `/products/edit`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/products` | `/products`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/rebalance-orders` | `/rebalance-orders`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/send-notifications` | `/send-notifications`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/slots/add` | `/slots/add`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/slots` | `/slots`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/slots/slot-details` | `/slots/slot-details`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/stores/add` | `/stores/add`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/stores/edit` | `/stores/edit`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/stores` | `/stores`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/user-management` | `/user-management`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/users` | `/users`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/vendor-snippets` | `/vendor-snippets`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/coupons/edit/[id]` | `/coupons/edit/[id]`, params: Router.UnknownOutputParams & { id: string; } } | { pathname: `${'/(drawer)'}/dashboard-banners/edit/[id]` | `/dashboard-banners/edit/[id]`, params: Router.UnknownOutputParams & { id: string; } } | { pathname: `${'/(drawer)'}/manage-orders/order-details/[id]` | `/manage-orders/order-details/[id]`, params: Router.UnknownOutputParams & { id: string; } } | { pathname: `${'/(drawer)'}/product-groupings/edit/[id]` | `/product-groupings/edit/[id]`, params: Router.UnknownOutputParams & { id: string; } } | { pathname: `${'/(drawer)'}/products/detail/[id]` | `/products/detail/[id]`, params: Router.UnknownOutputParams & { id: string; } } | { pathname: `${'/(drawer)'}/slots/edit/[id]` | `/slots/edit/[id]`, params: Router.UnknownOutputParams & { id: string; } } | { pathname: `${'/(drawer)'}/user-management/[id]` | `/user-management/[id]`, params: Router.UnknownOutputParams & { id: string; } }; - href: Router.RelativePathString | Router.ExternalPathString | `/${`?${string}` | `#${string}` | ''}` | `/login${`?${string}` | `#${string}` | ''}` | `/_sitemap${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/address-management${`?${string}` | `#${string}` | ''}` | `/address-management${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/complaints${`?${string}` | `#${string}` | ''}` | `/complaints${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/coupons/create${`?${string}` | `#${string}` | ''}` | `/coupons/create${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/coupons${`?${string}` | `#${string}` | ''}` | `/coupons${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/coupons/reserved-coupons${`?${string}` | `#${string}` | ''}` | `/coupons/reserved-coupons${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/customize-app/all-items-order${`?${string}` | `#${string}` | ''}` | `/customize-app/all-items-order${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/customize-app${`?${string}` | `#${string}` | ''}` | `/customize-app${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/customize-app/popular-items${`?${string}` | `#${string}` | ''}` | `/customize-app/popular-items${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/dashboard${`?${string}` | `#${string}` | ''}` | `/dashboard${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/dashboard-banners/create${`?${string}` | `#${string}` | ''}` | `/dashboard-banners/create${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/dashboard-banners${`?${string}` | `#${string}` | ''}` | `/dashboard-banners${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/manage-orders${`?${string}` | `#${string}` | ''}` | `/manage-orders${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/manage-orders/delivery-sequences${`?${string}` | `#${string}` | ''}` | `/manage-orders/delivery-sequences${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/manage-orders/orders${`?${string}` | `#${string}` | ''}` | `/manage-orders/orders${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/prices-overview${`?${string}` | `#${string}` | ''}` | `/prices-overview${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/product-groupings/create${`?${string}` | `#${string}` | ''}` | `/product-groupings/create${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/product-groupings${`?${string}` | `#${string}` | ''}` | `/product-groupings${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/product-tags/add${`?${string}` | `#${string}` | ''}` | `/product-tags/add${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/product-tags${`?${string}` | `#${string}` | ''}` | `/product-tags${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/product-tags/edit${`?${string}` | `#${string}` | ''}` | `/product-tags/edit${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/products/add${`?${string}` | `#${string}` | ''}` | `/products/add${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/products/edit${`?${string}` | `#${string}` | ''}` | `/products/edit${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/products${`?${string}` | `#${string}` | ''}` | `/products${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/rebalance-orders${`?${string}` | `#${string}` | ''}` | `/rebalance-orders${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/send-notifications${`?${string}` | `#${string}` | ''}` | `/send-notifications${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/slots/add${`?${string}` | `#${string}` | ''}` | `/slots/add${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/slots${`?${string}` | `#${string}` | ''}` | `/slots${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/slots/slot-details${`?${string}` | `#${string}` | ''}` | `/slots/slot-details${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/stores/add${`?${string}` | `#${string}` | ''}` | `/stores/add${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/stores/edit${`?${string}` | `#${string}` | ''}` | `/stores/edit${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/stores${`?${string}` | `#${string}` | ''}` | `/stores${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/user-management${`?${string}` | `#${string}` | ''}` | `/user-management${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/users${`?${string}` | `#${string}` | ''}` | `/users${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/vendor-snippets${`?${string}` | `#${string}` | ''}` | `/vendor-snippets${`?${string}` | `#${string}` | ''}` | { pathname: Router.RelativePathString, params?: Router.UnknownInputParams } | { pathname: Router.ExternalPathString, params?: Router.UnknownInputParams } | { pathname: `/`; params?: Router.UnknownInputParams; } | { pathname: `/login`; params?: Router.UnknownInputParams; } | { pathname: `/_sitemap`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/address-management` | `/address-management`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/complaints` | `/complaints`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/coupons/create` | `/coupons/create`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/coupons` | `/coupons`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/coupons/reserved-coupons` | `/coupons/reserved-coupons`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/customize-app/all-items-order` | `/customize-app/all-items-order`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/customize-app` | `/customize-app`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/customize-app/popular-items` | `/customize-app/popular-items`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/dashboard` | `/dashboard`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/dashboard-banners/create` | `/dashboard-banners/create`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/dashboard-banners` | `/dashboard-banners`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/manage-orders` | `/manage-orders`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/manage-orders/delivery-sequences` | `/manage-orders/delivery-sequences`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/manage-orders/orders` | `/manage-orders/orders`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/prices-overview` | `/prices-overview`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-groupings/create` | `/product-groupings/create`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-groupings` | `/product-groupings`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-tags/add` | `/product-tags/add`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-tags` | `/product-tags`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-tags/edit` | `/product-tags/edit`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/products/add` | `/products/add`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/products/edit` | `/products/edit`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/products` | `/products`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/rebalance-orders` | `/rebalance-orders`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/send-notifications` | `/send-notifications`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/slots/add` | `/slots/add`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/slots` | `/slots`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/slots/slot-details` | `/slots/slot-details`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/stores/add` | `/stores/add`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/stores/edit` | `/stores/edit`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/stores` | `/stores`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/user-management` | `/user-management`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/users` | `/users`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/vendor-snippets` | `/vendor-snippets`; params?: Router.UnknownInputParams; } | `${'/(drawer)'}/coupons/edit/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `/coupons/edit/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/dashboard-banners/edit/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `/dashboard-banners/edit/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/manage-orders/order-details/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `/manage-orders/order-details/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/product-groupings/edit/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `/product-groupings/edit/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/products/detail/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `/products/detail/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/slots/edit/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `/slots/edit/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/user-management/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `/user-management/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | { pathname: `${'/(drawer)'}/coupons/edit/[id]` | `/coupons/edit/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/dashboard-banners/edit/[id]` | `/dashboard-banners/edit/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/manage-orders/order-details/[id]` | `/manage-orders/order-details/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/product-groupings/edit/[id]` | `/product-groupings/edit/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/products/detail/[id]` | `/products/detail/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/slots/edit/[id]` | `/slots/edit/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/user-management/[id]` | `/user-management/[id]`, params: Router.UnknownInputParams & { id: string | number; } }; + hrefInputParams: { pathname: Router.RelativePathString, params?: Router.UnknownInputParams } | { pathname: Router.ExternalPathString, params?: Router.UnknownInputParams } | { pathname: `/`; params?: Router.UnknownInputParams; } | { pathname: `/login`; params?: Router.UnknownInputParams; } | { pathname: `/_sitemap`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/complaints` | `/complaints`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/coupons/create` | `/coupons/create`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/coupons` | `/coupons`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/coupons/reserved-coupons` | `/coupons/reserved-coupons`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/customize-app/all-items-order` | `/customize-app/all-items-order`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/customize-app` | `/customize-app`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/customize-app/popular-items` | `/customize-app/popular-items`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/dashboard` | `/dashboard`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/dashboard-banners/create` | `/dashboard-banners/create`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/dashboard-banners` | `/dashboard-banners`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/manage-orders` | `/manage-orders`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/manage-orders/delivery-sequences` | `/manage-orders/delivery-sequences`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/manage-orders/orders` | `/manage-orders/orders`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/prices-overview` | `/prices-overview`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-groupings/create` | `/product-groupings/create`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-groupings` | `/product-groupings`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-tags/add` | `/product-tags/add`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-tags` | `/product-tags`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-tags/edit` | `/product-tags/edit`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/products/add` | `/products/add`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/products/edit` | `/products/edit`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/products` | `/products`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/rebalance-orders` | `/rebalance-orders`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/send-notifications` | `/send-notifications`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/slots/add` | `/slots/add`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/slots` | `/slots`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/slots/slot-details` | `/slots/slot-details`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/stores/add` | `/stores/add`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/stores/edit` | `/stores/edit`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/stores` | `/stores`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/user-management` | `/user-management`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/users` | `/users`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/vendor-snippets` | `/vendor-snippets`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/coupons/edit/[id]` | `/coupons/edit/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/dashboard-banners/edit/[id]` | `/dashboard-banners/edit/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/manage-orders/order-details/[id]` | `/manage-orders/order-details/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/product-groupings/edit/[id]` | `/product-groupings/edit/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/products/detail/[id]` | `/products/detail/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/slots/edit/[id]` | `/slots/edit/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/user-management/[id]` | `/user-management/[id]`, params: Router.UnknownInputParams & { id: string | number; } }; + hrefOutputParams: { pathname: Router.RelativePathString, params?: Router.UnknownOutputParams } | { pathname: Router.ExternalPathString, params?: Router.UnknownOutputParams } | { pathname: `/`; params?: Router.UnknownOutputParams; } | { pathname: `/login`; params?: Router.UnknownOutputParams; } | { pathname: `/_sitemap`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/complaints` | `/complaints`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/coupons/create` | `/coupons/create`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/coupons` | `/coupons`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/coupons/reserved-coupons` | `/coupons/reserved-coupons`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/customize-app/all-items-order` | `/customize-app/all-items-order`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/customize-app` | `/customize-app`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/customize-app/popular-items` | `/customize-app/popular-items`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/dashboard` | `/dashboard`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/dashboard-banners/create` | `/dashboard-banners/create`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/dashboard-banners` | `/dashboard-banners`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/manage-orders` | `/manage-orders`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/manage-orders/delivery-sequences` | `/manage-orders/delivery-sequences`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/manage-orders/orders` | `/manage-orders/orders`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/prices-overview` | `/prices-overview`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/product-groupings/create` | `/product-groupings/create`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/product-groupings` | `/product-groupings`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/product-tags/add` | `/product-tags/add`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/product-tags` | `/product-tags`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/product-tags/edit` | `/product-tags/edit`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/products/add` | `/products/add`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/products/edit` | `/products/edit`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/products` | `/products`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/rebalance-orders` | `/rebalance-orders`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/send-notifications` | `/send-notifications`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/slots/add` | `/slots/add`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/slots` | `/slots`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/slots/slot-details` | `/slots/slot-details`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/stores/add` | `/stores/add`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/stores/edit` | `/stores/edit`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/stores` | `/stores`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/user-management` | `/user-management`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/users` | `/users`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/vendor-snippets` | `/vendor-snippets`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(drawer)'}/coupons/edit/[id]` | `/coupons/edit/[id]`, params: Router.UnknownOutputParams & { id: string; } } | { pathname: `${'/(drawer)'}/dashboard-banners/edit/[id]` | `/dashboard-banners/edit/[id]`, params: Router.UnknownOutputParams & { id: string; } } | { pathname: `${'/(drawer)'}/manage-orders/order-details/[id]` | `/manage-orders/order-details/[id]`, params: Router.UnknownOutputParams & { id: string; } } | { pathname: `${'/(drawer)'}/product-groupings/edit/[id]` | `/product-groupings/edit/[id]`, params: Router.UnknownOutputParams & { id: string; } } | { pathname: `${'/(drawer)'}/products/detail/[id]` | `/products/detail/[id]`, params: Router.UnknownOutputParams & { id: string; } } | { pathname: `${'/(drawer)'}/slots/edit/[id]` | `/slots/edit/[id]`, params: Router.UnknownOutputParams & { id: string; } } | { pathname: `${'/(drawer)'}/user-management/[id]` | `/user-management/[id]`, params: Router.UnknownOutputParams & { id: string; } }; + href: Router.RelativePathString | Router.ExternalPathString | `/${`?${string}` | `#${string}` | ''}` | `/login${`?${string}` | `#${string}` | ''}` | `/_sitemap${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/complaints${`?${string}` | `#${string}` | ''}` | `/complaints${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/coupons/create${`?${string}` | `#${string}` | ''}` | `/coupons/create${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/coupons${`?${string}` | `#${string}` | ''}` | `/coupons${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/coupons/reserved-coupons${`?${string}` | `#${string}` | ''}` | `/coupons/reserved-coupons${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/customize-app/all-items-order${`?${string}` | `#${string}` | ''}` | `/customize-app/all-items-order${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/customize-app${`?${string}` | `#${string}` | ''}` | `/customize-app${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/customize-app/popular-items${`?${string}` | `#${string}` | ''}` | `/customize-app/popular-items${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/dashboard${`?${string}` | `#${string}` | ''}` | `/dashboard${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/dashboard-banners/create${`?${string}` | `#${string}` | ''}` | `/dashboard-banners/create${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/dashboard-banners${`?${string}` | `#${string}` | ''}` | `/dashboard-banners${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/manage-orders${`?${string}` | `#${string}` | ''}` | `/manage-orders${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/manage-orders/delivery-sequences${`?${string}` | `#${string}` | ''}` | `/manage-orders/delivery-sequences${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/manage-orders/orders${`?${string}` | `#${string}` | ''}` | `/manage-orders/orders${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/prices-overview${`?${string}` | `#${string}` | ''}` | `/prices-overview${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/product-groupings/create${`?${string}` | `#${string}` | ''}` | `/product-groupings/create${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/product-groupings${`?${string}` | `#${string}` | ''}` | `/product-groupings${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/product-tags/add${`?${string}` | `#${string}` | ''}` | `/product-tags/add${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/product-tags${`?${string}` | `#${string}` | ''}` | `/product-tags${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/product-tags/edit${`?${string}` | `#${string}` | ''}` | `/product-tags/edit${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/products/add${`?${string}` | `#${string}` | ''}` | `/products/add${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/products/edit${`?${string}` | `#${string}` | ''}` | `/products/edit${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/products${`?${string}` | `#${string}` | ''}` | `/products${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/rebalance-orders${`?${string}` | `#${string}` | ''}` | `/rebalance-orders${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/send-notifications${`?${string}` | `#${string}` | ''}` | `/send-notifications${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/slots/add${`?${string}` | `#${string}` | ''}` | `/slots/add${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/slots${`?${string}` | `#${string}` | ''}` | `/slots${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/slots/slot-details${`?${string}` | `#${string}` | ''}` | `/slots/slot-details${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/stores/add${`?${string}` | `#${string}` | ''}` | `/stores/add${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/stores/edit${`?${string}` | `#${string}` | ''}` | `/stores/edit${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/stores${`?${string}` | `#${string}` | ''}` | `/stores${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/user-management${`?${string}` | `#${string}` | ''}` | `/user-management${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/users${`?${string}` | `#${string}` | ''}` | `/users${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/vendor-snippets${`?${string}` | `#${string}` | ''}` | `/vendor-snippets${`?${string}` | `#${string}` | ''}` | { pathname: Router.RelativePathString, params?: Router.UnknownInputParams } | { pathname: Router.ExternalPathString, params?: Router.UnknownInputParams } | { pathname: `/`; params?: Router.UnknownInputParams; } | { pathname: `/login`; params?: Router.UnknownInputParams; } | { pathname: `/_sitemap`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/complaints` | `/complaints`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/coupons/create` | `/coupons/create`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/coupons` | `/coupons`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/coupons/reserved-coupons` | `/coupons/reserved-coupons`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/customize-app/all-items-order` | `/customize-app/all-items-order`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/customize-app` | `/customize-app`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/customize-app/popular-items` | `/customize-app/popular-items`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/dashboard` | `/dashboard`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/dashboard-banners/create` | `/dashboard-banners/create`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/dashboard-banners` | `/dashboard-banners`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/manage-orders` | `/manage-orders`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/manage-orders/delivery-sequences` | `/manage-orders/delivery-sequences`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/manage-orders/orders` | `/manage-orders/orders`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/prices-overview` | `/prices-overview`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-groupings/create` | `/product-groupings/create`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-groupings` | `/product-groupings`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-tags/add` | `/product-tags/add`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-tags` | `/product-tags`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/product-tags/edit` | `/product-tags/edit`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/products/add` | `/products/add`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/products/edit` | `/products/edit`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/products` | `/products`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/rebalance-orders` | `/rebalance-orders`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/send-notifications` | `/send-notifications`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/slots/add` | `/slots/add`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/slots` | `/slots`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/slots/slot-details` | `/slots/slot-details`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/stores/add` | `/stores/add`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/stores/edit` | `/stores/edit`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/stores` | `/stores`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/user-management` | `/user-management`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/users` | `/users`; params?: Router.UnknownInputParams; } | { pathname: `${'/(drawer)'}/vendor-snippets` | `/vendor-snippets`; params?: Router.UnknownInputParams; } | `${'/(drawer)'}/coupons/edit/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `/coupons/edit/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/dashboard-banners/edit/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `/dashboard-banners/edit/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/manage-orders/order-details/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `/manage-orders/order-details/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/product-groupings/edit/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `/product-groupings/edit/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/products/detail/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `/products/detail/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/slots/edit/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `/slots/edit/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `${'/(drawer)'}/user-management/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | `/user-management/${Router.SingleRoutePart}${`?${string}` | `#${string}` | ''}` | { pathname: `${'/(drawer)'}/coupons/edit/[id]` | `/coupons/edit/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/dashboard-banners/edit/[id]` | `/dashboard-banners/edit/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/manage-orders/order-details/[id]` | `/manage-orders/order-details/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/product-groupings/edit/[id]` | `/product-groupings/edit/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/products/detail/[id]` | `/products/detail/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/slots/edit/[id]` | `/slots/edit/[id]`, params: Router.UnknownInputParams & { id: string | number; } } | { pathname: `${'/(drawer)'}/user-management/[id]` | `/user-management/[id]`, params: Router.UnknownInputParams & { id: string | number; } }; } } } diff --git a/apps/admin-ui/app/(drawer)/_layout.tsx b/apps/admin-ui/app/(drawer)/_layout.tsx index 5be957c..79dd68b 100644 --- a/apps/admin-ui/app/(drawer)/_layout.tsx +++ b/apps/admin-ui/app/(drawer)/_layout.tsx @@ -226,9 +226,8 @@ export default function Layout() { - - - + + diff --git a/apps/admin-ui/app/(drawer)/address-management/index.tsx b/apps/admin-ui/app/(drawer)/address-management/index.tsx deleted file mode 100644 index 69745b8..0000000 --- a/apps/admin-ui/app/(drawer)/address-management/index.tsx +++ /dev/null @@ -1,108 +0,0 @@ -import React, { useState } from 'react' -import { View, Text, TouchableOpacity, ScrollView } from 'react-native' -import { BottomDialog , tw } from 'common-ui' -import { trpc } from '@/src/trpc-client' -import AddressZoneForm from '@/components/AddressZoneForm' -import AddressPlaceForm from '@/components/AddressPlaceForm' -import MaterialIcons from '@expo/vector-icons/MaterialIcons' - -const AddressManagement: React.FC = () => { - const [dialogOpen, setDialogOpen] = useState(false) - const [dialogType, setDialogType] = useState<'zone' | 'place' | null>(null) - const [expandedZones, setExpandedZones] = useState>(new Set()) - - const { data: zones, refetch: refetchZones } = trpc.admin.address.getZones.useQuery() - const { data: areas, refetch: refetchAreas } = trpc.admin.address.getAreas.useQuery() - - const createZone = trpc.admin.address.createZone.useMutation({ - onSuccess: () => { - refetchZones() - setDialogOpen(false) - }, - }) - - const createArea = trpc.admin.address.createArea.useMutation({ - onSuccess: () => { - refetchAreas() - setDialogOpen(false) - }, - }) - - const handleAddZone = () => { - setDialogType('zone') - setDialogOpen(true) - } - - const handleAddPlace = () => { - setDialogType('place') - setDialogOpen(true) - } - - const toggleZone = (zoneId: number) => { - setExpandedZones(prev => { - const newSet = new Set(prev) - if (newSet.has(zoneId)) { - newSet.delete(zoneId) - } else { - newSet.add(zoneId) - } - return newSet - }) - } - - const groupedAreas = areas?.reduce((acc, area) => { - if (area.zoneId) { - if (!acc[area.zoneId]) acc[area.zoneId] = [] - acc[area.zoneId].push(area) - } - return acc - }, {} as Record) || {} - - const unzonedAreas = areas?.filter(a => !a.zoneId) || [] - - return ( - - - - Add Zone - - - Add Place - - - - - {zones?.map(zone => ( - - toggleZone(zone.id)}> - {zone.zoneName} - - - {expandedZones.has(zone.id) && ( - - {groupedAreas[zone.id]?.map(area => ( - - {area.placeName} - )) || No places in this zone} - - )} - - ))} - - - Unzoned Places - {unzonedAreas.map(area => ( - - {area.placeName} - ))} - {unzonedAreas.length === 0 && No unzoned places} - - - - setDialogOpen(false)}> - {dialogType === 'zone' && setDialogOpen(false)} />} - {dialogType === 'place' && setDialogOpen(false)} />} - - - ) -} - -export default AddressManagement \ No newline at end of file diff --git a/apps/admin-ui/app/(drawer)/dashboard-banners/index.tsx b/apps/admin-ui/app/(drawer)/dashboard-banners/index.tsx index 8502cf1..29bc085 100644 --- a/apps/admin-ui/app/(drawer)/dashboard-banners/index.tsx +++ b/apps/admin-ui/app/(drawer)/dashboard-banners/index.tsx @@ -464,4 +464,4 @@ export default function DashboardBanners() { ); -} \ No newline at end of file +} diff --git a/apps/admin-ui/app/(drawer)/dashboard/index.tsx b/apps/admin-ui/app/(drawer)/dashboard/index.tsx index 037c634..a3de344 100644 --- a/apps/admin-ui/app/(drawer)/dashboard/index.tsx +++ b/apps/admin-ui/app/(drawer)/dashboard/index.tsx @@ -176,15 +176,6 @@ export default function Dashboard() { iconColor: '#F97316', iconBg: '#FFEDD5', }, - { - title: 'Address Management', - icon: 'location-on', - description: 'Manage service areas', - route: '/(drawer)/address-management', - category: 'settings', - iconColor: '#EAB308', - iconBg: '#FEF9C3', - }, { title: 'App Constants', icon: 'settings-applications', diff --git a/apps/admin-ui/mfa_20_mar_dev.apk b/apps/admin-ui/mfa_20_mar_dev.apk new file mode 100644 index 0000000..fc0804f Binary files /dev/null and b/apps/admin-ui/mfa_20_mar_dev.apk differ diff --git a/apps/backend/.env b/apps/backend/.env index e127cac..be2c9e2 100755 --- a/apps/backend/.env +++ b/apps/backend/.env @@ -17,10 +17,10 @@ S3_REGION=apac S3_ACCESS_KEY_ID=8fab47503efb9547b50e4fb317e35cc7 S3_SECRET_ACCESS_KEY=47c2eb5636843cf568dda7ad0959a3e42071303f26dbdff94bd45a3c33dcd950 S3_URL=https://da9b1aa7c1951c23e2c0c3246ba68a58.r2.cloudflarestorage.com -S3_BUCKET_NAME=meatfarmer +S3_BUCKET_NAME=meatfarmer-dev EXPO_ACCESS_TOKEN=Asvpy8cByRh6T4ksnWScO6PLcio2n35-BwES5zK- JWT_SECRET=my_meatfarmer_jwt_secret_key -ASSETS_DOMAIN=https://assets.freshyo.in/ +ASSETS_DOMAIN=https://assets2.freshyo.in/ API_CACHE_KEY=api-cache-dev # CLOUDFLARE_API_TOKEN=I8Vp4E9TX58E8qEDeH0nTFDS2d2zXNYiXvbs4Ckj CLOUDFLARE_API_TOKEN=N7jAg5X-RUj_fVfMW6zbfJ8qIYc81TSIKKlbZ6oh diff --git a/apps/backend/src/dbService.ts b/apps/backend/src/dbService.ts new file mode 100644 index 0000000..d94595b --- /dev/null +++ b/apps/backend/src/dbService.ts @@ -0,0 +1,15 @@ +// Database Service - Central export for all database-related imports +// This file re-exports everything from postgresService to provide a clean abstraction layer +// Implementation is the responsibility of postgresService package + +// Re-export database connection +export { db } from 'postgresService'; + +// Re-export all schema exports +export * from 'postgresService'; + +// Re-export methods from postgresService (implementation lives there) +export { getBanners, getBannerById, createBanner, updateBanner, deleteBanner } from 'postgresService'; + +// Re-export types from local types file (to avoid circular dependencies) +export type { Banner } from './types/db.types'; diff --git a/apps/backend/src/trpc/apis/admin-apis/apis/address.ts b/apps/backend/src/trpc/apis/admin-apis/apis/address.ts deleted file mode 100644 index 019b895..0000000 --- a/apps/backend/src/trpc/apis/admin-apis/apis/address.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { z } from 'zod'; -import { addressZones, addressAreas } from '@/src/db/schema' -import { eq, desc } from 'drizzle-orm'; -import { db } from '@/src/db/db_index' -import { router,protectedProcedure } from '@/src/trpc/trpc-index' - -const addressRouter = router({ - getZones: protectedProcedure.query(async () => { - const zones = await db.select().from(addressZones).orderBy(desc(addressZones.addedAt)); - return zones - }), - - getAreas: protectedProcedure.query(async () => { - const areas = await db.select().from(addressAreas).orderBy(desc(addressAreas.createdAt)); - return areas - }), - - createZone: protectedProcedure.input(z.object({ zoneName: z.string().min(1) })).mutation(async ({ input }) => { - - const zone = await db.insert(addressZones).values({ zoneName: input.zoneName }).returning(); - return {zone: zone}; - }), - - createArea: protectedProcedure.input(z.object({ placeName: z.string().min(1), zoneId: z.number().nullable() })).mutation(async ({ input }) => { - const area = await db.insert(addressAreas).values({ placeName: input.placeName, zoneId: input.zoneId }).returning(); - return {area}; - }), - - // TODO: Add update and delete mutations if needed -}); - -export default addressRouter; \ No newline at end of file diff --git a/apps/backend/src/trpc/apis/admin-apis/apis/admin-trpc-index.ts b/apps/backend/src/trpc/apis/admin-apis/apis/admin-trpc-index.ts index 3af0292..ede995e 100644 --- a/apps/backend/src/trpc/apis/admin-apis/apis/admin-trpc-index.ts +++ b/apps/backend/src/trpc/apis/admin-apis/apis/admin-trpc-index.ts @@ -2,7 +2,6 @@ import { router } from '@/src/trpc/trpc-index' import { complaintRouter } from '@/src/trpc/apis/admin-apis/apis/complaint' import { couponRouter } from '@/src/trpc/apis/admin-apis/apis/coupon' -import { cancelledOrdersRouter } from '@/src/trpc/apis/admin-apis/apis/cancelled-orders' import { orderRouter } from '@/src/trpc/apis/admin-apis/apis/order' import { vendorSnippetsRouter } from '@/src/trpc/apis/admin-apis/apis/vendor-snippets' import { slotsRouter } from '@/src/trpc/apis/admin-apis/apis/slots' @@ -10,7 +9,6 @@ import { productRouter } from '@/src/trpc/apis/admin-apis/apis/product' import { staffUserRouter } from '@/src/trpc/apis/admin-apis/apis/staff-user' import { storeRouter } from '@/src/trpc/apis/admin-apis/apis/store' import { adminPaymentsRouter } from '@/src/trpc/apis/admin-apis/apis/payments' -import addressRouter from '@/src/trpc/apis/admin-apis/apis/address' import { bannerRouter } from '@/src/trpc/apis/admin-apis/apis/banner' import { userRouter } from '@/src/trpc/apis/admin-apis/apis/user' import { constRouter } from '@/src/trpc/apis/admin-apis/apis/const' @@ -18,7 +16,6 @@ import { constRouter } from '@/src/trpc/apis/admin-apis/apis/const' export const adminRouter = router({ complaint: complaintRouter, coupon: couponRouter, - cancelledOrders: cancelledOrdersRouter, order: orderRouter, vendorSnippets: vendorSnippetsRouter, slots: slotsRouter, @@ -26,7 +23,6 @@ export const adminRouter = router({ staffUser: staffUserRouter, store: storeRouter, payments: adminPaymentsRouter, - address: addressRouter, banner: bannerRouter, user: userRouter, const: constRouter, diff --git a/apps/backend/src/trpc/apis/admin-apis/apis/banner.ts b/apps/backend/src/trpc/apis/admin-apis/apis/banner.ts index dde8d91..2922330 100644 --- a/apps/backend/src/trpc/apis/admin-apis/apis/banner.ts +++ b/apps/backend/src/trpc/apis/admin-apis/apis/banner.ts @@ -1,23 +1,34 @@ import { z } from 'zod'; -import { db } from '@/src/db/db_index' -import { homeBanners } from '@/src/db/schema' -import { eq, and, desc, sql } from 'drizzle-orm'; import { protectedProcedure, router } from '@/src/trpc/trpc-index' import { extractKeyFromPresignedUrl, generateSignedUrlFromS3Url } from '@/src/lib/s3-client' import { ApiError } from '@/src/lib/api-error'; import { scheduleStoreInitialization } from '@/src/stores/store-initializer' +import { + getBanners as getBannersFromDb, + getBannerById as getBannerByIdFromDb, + createBanner as createBannerInDb, + updateBanner as updateBannerInDb, + deleteBanner as deleteBannerFromDb, +} from '@/src/dbService' +import type { Banner } from '@packages/shared' export const bannerRouter = router({ // Get all banners getBanners: protectedProcedure - .query(async () => { + .query(async (): Promise<{ banners: Banner[] }> => { try { - const banners = await db.query.homeBanners.findMany({ - orderBy: desc(homeBanners.createdAt), // Order by creation date instead + // Using dbService helper (new implementation) + const banners = await getBannersFromDb(); + + + // Old implementation - direct DB query: + // const banners = await db.query.homeBanners.findMany({ + // orderBy: desc(homeBanners.createdAt), // Order by creation date instead // Removed product relationship since we now use productIds array - }); + // }); + // Convert S3 keys to signed URLs for client const bannersWithSignedUrls = await Promise.all( @@ -55,11 +66,17 @@ export const bannerRouter = router({ // Get single banner by ID getBanner: protectedProcedure .input(z.object({ id: z.number() })) - .query(async ({ input }) => { + .query(async ({ input }): Promise => { + // Using dbService helper (new implementation) + const banner = await getBannerByIdFromDb(input.id); + + /* + // Old implementation - direct DB query: const banner = await db.query.homeBanners.findFirst({ where: eq(homeBanners.id, input.id), // Removed product relationship since we now use productIds array }); + */ if (banner) { try { @@ -91,8 +108,22 @@ export const bannerRouter = router({ redirectUrl: z.string().url().optional(), // serialNum removed completely })) - .mutation(async ({ input }) => { + .mutation(async ({ input }): Promise => { try { + // Using dbService helper (new implementation) + const imageUrl = extractKeyFromPresignedUrl(input.imageUrl) + const banner = await createBannerInDb({ + name: input.name, + imageUrl: imageUrl, + description: input.description ?? null, + productIds: input.productIds || [], + redirectUrl: input.redirectUrl ?? null, + serialNum: 999, // Default value, not used + isActive: false, // Default to inactive + }); + + /* + // Old implementation - direct DB query: const imageUrl = extractKeyFromPresignedUrl(input.imageUrl) const [banner] = await db.insert(homeBanners).values({ name: input.name, @@ -103,6 +134,7 @@ export const bannerRouter = router({ serialNum: 999, // Default value, not used isActive: false, // Default to inactive }).returning(); + */ // Reinitialize stores to reflect changes scheduleStoreInitialization() @@ -126,9 +158,28 @@ export const bannerRouter = router({ serialNum: z.number().nullable().optional(), isActive: z.boolean().optional(), })) - .mutation(async ({ input }) => { + .mutation(async ({ input }): Promise => { try { - + // Using dbService helper (new implementation) + const { id, ...updateData } = input; + + // Extract S3 key from presigned URL if imageUrl is provided + const processedData = { + ...updateData, + ...(updateData.imageUrl && { + imageUrl: extractKeyFromPresignedUrl(updateData.imageUrl) + }), + }; + + // Handle serialNum null case + if ('serialNum' in processedData && processedData.serialNum === null) { + processedData.serialNum = null; + } + + const banner = await updateBannerInDb(id, processedData); + + /* + // Old implementation - direct DB query: const { id, ...updateData } = input; const incomingProductIds = input.productIds; // Extract S3 key from presigned URL if imageUrl is provided @@ -150,6 +201,7 @@ export const bannerRouter = router({ .set({ ...finalData, lastUpdated: new Date(), }) .where(eq(homeBanners.id, id)) .returning(); + */ // Reinitialize stores to reflect changes scheduleStoreInitialization() @@ -164,8 +216,14 @@ export const bannerRouter = router({ // Delete banner deleteBanner: protectedProcedure .input(z.object({ id: z.number() })) - .mutation(async ({ input }) => { + .mutation(async ({ input }): Promise<{ success: true }> => { + // Using dbService helper (new implementation) + await deleteBannerFromDb(input.id); + + /* + // Old implementation - direct DB query: await db.delete(homeBanners).where(eq(homeBanners.id, input.id)); + */ // Reinitialize stores to reflect changes scheduleStoreInitialization() diff --git a/apps/backend/src/trpc/apis/admin-apis/apis/cancelled-orders.ts b/apps/backend/src/trpc/apis/admin-apis/apis/cancelled-orders.ts deleted file mode 100644 index 14c0b26..0000000 --- a/apps/backend/src/trpc/apis/admin-apis/apis/cancelled-orders.ts +++ /dev/null @@ -1,179 +0,0 @@ -import { router, protectedProcedure } from '@/src/trpc/trpc-index' -import { z } from 'zod'; -import { db } from '@/src/db/db_index' -import { orders, orderStatus, users, addresses, orderItems, productInfo, units, refunds } from '@/src/db/schema' -import { eq, desc } from 'drizzle-orm'; - -const updateCancellationReviewSchema = z.object({ - orderId: z.number(), - cancellationReviewed: z.boolean(), - adminNotes: z.string().optional(), -}); - -const updateRefundSchema = z.object({ - orderId: z.number(), - isRefundDone: z.boolean(), -}); - -export const cancelledOrdersRouter = router({ - getAll: protectedProcedure - .query(async () => { - // First get cancelled order statuses with order details - const cancelledOrderStatuses = await db.query.orderStatus.findMany({ - where: eq(orderStatus.isCancelled, true), - with: { - order: { - with: { - user: true, - address: true, - orderItems: { - with: { - product: { - with: { - unit: true, - }, - }, - }, - }, - refunds: true, - }, - }, - }, - orderBy: [desc(orderStatus.orderTime)], - }); - - const filteredStatuses = cancelledOrderStatuses.filter(status => { - return status.order.isCod || status.paymentStatus === 'success'; - }); - - return filteredStatuses.map(status => { - const refund = status.order.refunds[0]; - return { - id: status.order.id, - readableId: status.order.id, - customerName: `${status.order.user.name}`, - address: `${status.order.address.addressLine1}, ${status.order.address.city}`, - totalAmount: status.order.totalAmount, - cancellationReviewed: status.cancellationReviewed || false, - isRefundDone: refund?.refundStatus === 'processed' || false, - adminNotes: status.order.adminNotes, - cancelReason: status.cancelReason, - paymentMode: status.order.isCod ? 'COD' : 'Online', - paymentStatus: status.paymentStatus || 'pending', - items: status.order.orderItems.map(item => ({ - name: item.product.name, - quantity: item.quantity, - price: item.price, - unit: item.product.unit?.shortNotation, - amount: parseFloat(item.price.toString()) * parseFloat(item.quantity || '0'), - })), - createdAt: status.order.createdAt, - }; - }); - }), - - updateReview: protectedProcedure - .input(updateCancellationReviewSchema) - .mutation(async ({ input }) => { - const { orderId, cancellationReviewed, adminNotes } = input; - - const result = await db.update(orderStatus) - .set({ - cancellationReviewed, - cancellationAdminNotes: adminNotes || null, - cancellationReviewedAt: new Date(), - }) - .where(eq(orderStatus.orderId, orderId)) - .returning(); - - if (result.length === 0) { - throw new Error("Cancellation record not found"); - } - - return result[0]; - }), - - getById: protectedProcedure - .input(z.object({ id: z.number() })) - .query(async ({ input }) => { - const { id } = input; - - // Get cancelled order with full details - const cancelledOrderStatus = await db.query.orderStatus.findFirst({ - where: eq(orderStatus.id, id), - with: { - order: { - with: { - user: true, - address: true, - orderItems: { - with: { - product: { - with: { - unit: true, - }, - }, - }, - }, - }, - }, - }, - }); - - if (!cancelledOrderStatus || !cancelledOrderStatus.isCancelled) { - throw new Error("Cancelled order not found"); - } - - // Get refund details separately - const refund = await db.query.refunds.findFirst({ - where: eq(refunds.orderId, cancelledOrderStatus.orderId), - }); - - const order = cancelledOrderStatus.order; - - // Format the response similar to the getAll method - const formattedOrder = { - id: order.id, - readableId: order.id, - customerName: order.user.name, - address: `${order.address.addressLine1}${order.address.addressLine2 ? ', ' + order.address.addressLine2 : ''}, ${order.address.city}, ${order.address.state} ${order.address.pincode}`, - totalAmount: order.totalAmount, - cancellationReviewed: cancelledOrderStatus.cancellationReviewed || false, - isRefundDone: refund?.refundStatus === 'processed' || false, - adminNotes: cancelledOrderStatus.cancellationAdminNotes || null, - cancelReason: cancelledOrderStatus.cancelReason || null, - items: order.orderItems.map((item: any) => ({ - name: item.product.name, - quantity: item.quantity, - price: parseFloat(item.price.toString()), - unit: item.product.unit?.shortNotation || 'unit', - amount: parseFloat(item.price.toString()) * parseFloat(item.quantity), - image: item.product.images?.[0] || null, - })), - createdAt: order.createdAt.toISOString(), - }; - - return { order: formattedOrder }; - }), - - updateRefund: protectedProcedure - .input(updateRefundSchema) - .mutation(async ({ input }) => { - const { orderId, isRefundDone } = input; - - const refundStatus = isRefundDone ? 'processed' : 'none'; - const result = await db.update(refunds) - .set({ - refundStatus, - refundProcessedAt: isRefundDone ? new Date() : null, - }) - .where(eq(refunds.orderId, orderId)) - .returning(); - - if (result.length === 0) { - throw new Error("Cancellation record not found"); - } - - return result[0]; - }), -}); \ No newline at end of file diff --git a/apps/backend/src/types/db.types.ts b/apps/backend/src/types/db.types.ts new file mode 100644 index 0000000..50dbdf9 --- /dev/null +++ b/apps/backend/src/types/db.types.ts @@ -0,0 +1,4 @@ +// Database Types - Re-exports from shared package +// Central type definitions for backend database operations + +export type { Banner } from '@packages/shared'; diff --git a/apps/backend/tsconfig.json b/apps/backend/tsconfig.json index 137ac12..b74475b 100755 --- a/apps/backend/tsconfig.json +++ b/apps/backend/tsconfig.json @@ -35,6 +35,8 @@ "@commonTypes/*": ["../../packages/ui/shared-types/*"], "@packages/shared": ["../../packages/shared"], "@packages/shared/*": ["../../packages/shared/*"], + "postgresService": ["../../packages/db_helper_postgres"], + "postgresService/*": ["../../packages/db_helper_postgres/*"], "global-shared": ["../../packages/shared"], "global-shared/*": ["../../packages/shared/*"] }, diff --git a/apps/fallback-ui/src/router.tsx b/apps/fallback-ui/src/router.tsx index b21d2e5..7c9e4c3 100644 --- a/apps/fallback-ui/src/router.tsx +++ b/apps/fallback-ui/src/router.tsx @@ -11,6 +11,7 @@ import { CreateCouponRoute } from './routes/create-coupon' import { LocationMarkerRoute } from './routes/location-marker' import { UserConnectRoute } from './routes/user-connect' import Inauguration from './routes/inauguration' +import { DemoRoute } from './routes/demo' import { AuthWrapper } from './components/AuthWrapper' import { SuperAdminGuard } from './components/SuperAdminGuard' import { cn } from '@/lib/utils' @@ -124,6 +125,16 @@ const locationMarkerRoute = new Route({ ) }) +const demoRoute = new Route({ + getParentRoute: () => rootRoute, + path: '/demo', + component: () => ( + Loading demo…

}> + +
+ ) +}) + const routeTree = rootRoute.addChildren([ dashboardRoute, vendorOrderListRoute, @@ -133,7 +144,8 @@ const routeTree = rootRoute.addChildren([ createCouponRoute, userConnectRoute, locationMarkerRoute, - inaugurationRoute + inaugurationRoute, + demoRoute ]) export function createAppRouter() { diff --git a/apps/fallback-ui/src/routes/demo.tsx b/apps/fallback-ui/src/routes/demo.tsx new file mode 100644 index 0000000..830332a --- /dev/null +++ b/apps/fallback-ui/src/routes/demo.tsx @@ -0,0 +1,259 @@ +import { useState } from 'react' +import { getAuthToken } from '@/services/auth' + +const API_BASE_URL = import.meta.env.VITE_API_URL || 'http://localhost:4000' + +export function DemoRoute() { + const [method, setMethod] = useState('GET') + const [endpoint, setEndpoint] = useState('/api/test') + const [headers, setHeaders] = useState('{}') + const [body, setBody] = useState('{}') + const [response, setResponse] = useState(null) + const [error, setError] = useState('') + const [loading, setLoading] = useState(false) + const [history, setHistory] = useState>([]) + + const handleSubmit = async () => { + setLoading(true) + setError('') + setResponse(null) + + try { + const token = await getAuthToken() + const url = `${API_BASE_URL}${endpoint}` + + let parsedHeaders: Record = {} + try { + parsedHeaders = JSON.parse(headers) + } catch { + throw new Error('Invalid headers JSON') + } + + const fetchOptions: RequestInit = { + method, + headers: { + 'Content-Type': 'application/json', + ...(token && { Authorization: `Bearer ${token}` }), + ...parsedHeaders, + }, + } + + if (method !== 'GET' && method !== 'HEAD') { + try { + const parsedBody = JSON.parse(body) + fetchOptions.body = JSON.stringify(parsedBody) + } catch { + throw new Error('Invalid body JSON') + } + } + + const startTime = performance.now() + const res = await fetch(url, fetchOptions) + const endTime = performance.now() + const duration = Math.round(endTime - startTime) + + let data + const contentType = res.headers.get('content-type') + if (contentType && contentType.includes('application/json')) { + data = await res.json() + } else { + data = await res.text() + } + + setResponse({ + status: res.status, + statusText: res.statusText, + duration: `${duration}ms`, + headers: Object.fromEntries(res.headers.entries()), + data, + }) + + // Add to history + setHistory(prev => [ + { method, endpoint, timestamp: new Date().toLocaleTimeString() }, + ...prev.slice(0, 9), // Keep last 10 + ]) + } catch (err: any) { + setError(err.message || 'An error occurred') + } finally { + setLoading(false) + } + } + + const loadFromHistory = (item: { method: string; endpoint: string }) => { + setMethod(item.method) + setEndpoint(item.endpoint) + } + + const getStatusColor = (status: number) => { + if (status >= 200 && status < 300) return 'bg-green-500' + if (status >= 300 && status < 400) return 'bg-yellow-500' + if (status >= 400) return 'bg-red-500' + return 'bg-gray-500' + } + + return ( +
+
+

API Demo & Testing

+ + {API_BASE_URL} + +
+ +
+ {/* Request Panel */} +
+

Request

+
+
+ + ) => setEndpoint(e.target.value)} + className="flex-1 px-4 py-2 border rounded-md" + /> + +
+ +
+ +