feat(admin-next, inventory-next, medusa, types): Add admin reservations flow (#7080)

* add reservation endpoints

* add changeset

* initial

* add reservations table

* add edit-item modal

* udpate inventory item attributes

* manage locations skeleton

* add combi batch endpoint

* cleanup

* fix manage locations

* add adjust inventory

* prep for pr

* minor fixes to region domain and api (#7042)

* initial reservation

* init

* update reservation

* create reservation

* polishing

* minor fix

* prep for pr

* prep for pr

* polishing

* inventory items reservations

* Update packages/admin-next/dashboard/src/v2-routes/reservations/reservation-list/components/reservation-list-table/reservation-list-table.tsx

Co-authored-by: Frane Polić <16856471+fPolic@users.noreply.github.com>

* fix feedback

* rename to ispending

---------

Co-authored-by: Kasper Fabricius Kristensen <45367945+kasperkristensen@users.noreply.github.com>
Co-authored-by: Frane Polić <16856471+fPolic@users.noreply.github.com>
This commit is contained in:
Philip Korsholm
2024-04-25 10:11:29 +02:00
committed by GitHub
co-authored by Frane Polić Kasper Fabricius Kristensen
parent 347aece924
commit e4898fb00d
48 changed files with 1415 additions and 175 deletions
@@ -1,10 +1,3 @@
import { AdminCustomersRes } from "@medusajs/client-types"
import {
AdminCollectionsRes,
AdminProductsRes,
AdminPromotionRes,
AdminRegionsRes,
} from "@medusajs/medusa"
import {
AdminApiKeyResponse,
AdminCustomerGroupResponse,
@@ -14,13 +7,20 @@ import {
SalesChannelDTO,
UserDTO,
} from "@medusajs/types"
import {
AdminCollectionsRes,
AdminProductsRes,
AdminPromotionRes,
AdminRegionsRes,
} from "@medusajs/medusa"
import { InventoryItemRes, PriceListRes } from "../../types/api-responses"
import { Outlet, RouteObject } from "react-router-dom"
import { ProtectedRoute } from "../../components/authentication/protected-route"
import { AdminCustomersRes } from "@medusajs/client-types"
import { ErrorBoundary } from "../../components/error/error-boundary"
import { MainLayout } from "../../components/layout/main-layout"
import { ProtectedRoute } from "../../components/authentication/protected-route"
import { SettingsLayout } from "../../components/layout/settings-layout"
import { InventoryItemRes, PriceListRes } from "../../types/api-responses"
/**
* Experimental V2 routes.
@@ -383,7 +383,7 @@ export const v2Routes: RouteObject[] = [
path: "create",
lazy: () =>
import(
"../../v2-routes/customer-groups/customer-group-create"
"../../v2-routes/reservations/reservation-list/create-reservation"
),
},
],
@@ -417,6 +417,51 @@ export const v2Routes: RouteObject[] = [
},
],
},
{
path: "/reservations",
handle: {
crumb: () => "Reservations",
},
children: [
{
path: "",
lazy: () =>
import("../../v2-routes/reservations/reservation-list"),
children: [
{
path: "create",
lazy: () =>
import(
"../../v2-routes/reservations/reservation-list/create-reservation"
),
},
],
},
{
path: ":id",
lazy: () =>
import("../../v2-routes/reservations/reservation-detail"),
handle: {
crumb: ({ reservation }: any) => {
return (
reservation?.inventory_item?.title ??
reservation?.inventory_item?.sku ??
reservation?.id
)
},
},
children: [
{
path: "edit",
lazy: () =>
import(
"../../v2-routes/reservations/reservation-detail/components/edit-reservation"
),
},
],
},
],
},
{
path: "/inventory",
handle: {
@@ -437,7 +482,6 @@ export const v2Routes: RouteObject[] = [
},
children: [
{
// TODO: edit item
path: "edit",
lazy: () =>
import(
@@ -445,7 +489,6 @@ export const v2Routes: RouteObject[] = [
),
},
{
// TODO: edit item attributes
path: "attributes",
lazy: () =>
import(
@@ -453,7 +496,6 @@ export const v2Routes: RouteObject[] = [
),
},
{
// TODO: manage locations
path: "locations",
lazy: () =>
import(
@@ -461,7 +503,6 @@ export const v2Routes: RouteObject[] = [
),
},
{
// TODO: adjust item level
path: "locations/:location_id",
lazy: () =>
import(