feat(dashboard,types,js-sdk,ui): Add missing Price List features (#7856)

**What**
- Adds missing features to Price List domain
- Adds `StackedFocusModal` and `StackedDrawer` components that should replace SplitView across the project.
- Add Footer to FocusModal
- Adds missing js-sdk functions and types

**Note**
The DatePickers in the PriceLists forms do not work as intended atm. The component is broken, and needs to be fixed. I am working on a fix, but choose to move that work into a separate branch, to prevent this PR from getting bigger then it already is. Will update once the fixes have been merged.
This commit is contained in:
Kasper Fabricius Kristensen
2024-06-28 14:08:23 +00:00
committed by GitHub
parent 9f3998393b
commit c1740218e9
295 changed files with 4488 additions and 2350 deletions
+3
View File
@@ -16,6 +16,7 @@ import { SalesChannel } from "./sales-channel"
import { ShippingOption } from "./shipping-option"
import { ShippingProfile } from "./shipping-profile"
import { StockLocation } from "./stock-location"
import { Store } from "./store"
import { TaxRate } from "./tax-rate"
import { TaxRegion } from "./tax-region"
import { Upload } from "./upload"
@@ -41,6 +42,7 @@ export class Admin {
public order: Order
public taxRate: TaxRate
public taxRegion: TaxRegion
public store: Store
constructor(client: Client) {
this.invite = new Invite(client)
@@ -63,5 +65,6 @@ export class Admin {
this.order = new Order(client)
this.taxRate = new TaxRate(client)
this.taxRegion = new TaxRegion(client)
this.store = new Store(client)
}
}
@@ -9,6 +9,95 @@ export class PriceList {
this.client = client
}
async retrieve(
id: string,
query?: HttpTypes.AdminPriceListParams,
headers?: ClientHeaders
) {
return this.client.fetch<HttpTypes.AdminPriceListResponse>(
`/admin/price-lists/${id}`,
{
method: "GET",
headers,
query,
}
)
}
async list(
query?: HttpTypes.AdminPriceListListParams,
headers?: ClientHeaders
) {
return this.client.fetch<HttpTypes.AdminPriceListListResponse>(
`/admin/price-lists`,
{
method: "GET",
headers,
query,
}
)
}
async create(
body: HttpTypes.AdminCreatePriceList,
query?: HttpTypes.AdminPriceListParams,
headers?: ClientHeaders
) {
return this.client.fetch<HttpTypes.AdminPriceListResponse>(
`/admin/price-lists`,
{
method: "POST",
headers,
body,
query,
}
)
}
async update(
id: string,
body: HttpTypes.AdminUpdatePriceList,
query?: HttpTypes.AdminPriceListParams,
headers?: ClientHeaders
) {
return this.client.fetch<HttpTypes.AdminPriceListResponse>(
`/admin/price-lists/${id}`,
{
method: "POST",
headers,
body,
query,
}
)
}
async delete(id: string, headers?: ClientHeaders) {
return this.client.fetch<HttpTypes.AdminPriceListDeleteResponse>(
`/admin/price-lists/${id}`,
{
method: "DELETE",
headers,
}
)
}
async batchPrices(
id: string,
body: HttpTypes.AdminBatchPriceListPrice,
query?: HttpTypes.AdminPriceListParams,
headers?: ClientHeaders
) {
return this.client.fetch<HttpTypes.AdminPriceListResponse>(
`/admin/price-lists/${id}/prices/batch`,
{
method: "POST",
headers,
body,
query,
}
)
}
async linkProducts(
id: string,
body: HttpTypes.AdminLinkPriceListProducts,
+53
View File
@@ -0,0 +1,53 @@
import { HttpTypes, SelectParams } from "@medusajs/types"
import { Client } from "../client"
import { ClientHeaders } from "../types"
export class Store {
private client: Client
constructor(client: Client) {
this.client = client
}
async retrieve(
id: string,
query?: HttpTypes.AdminStoreParams,
headers?: ClientHeaders
) {
return await this.client.fetch<HttpTypes.AdminStoreResponse>(
`/admin/stores/${id}`,
{
method: "GET",
headers,
query,
}
)
}
async list(query?: HttpTypes.AdminStoreListParams, headers?: ClientHeaders) {
return await this.client.fetch<HttpTypes.AdminStoreListResponse>(
`/admin/stores`,
{
method: "GET",
headers,
query,
}
)
}
async update(
id: string,
body: HttpTypes.AdminUpdateStore,
query?: SelectParams,
headers?: ClientHeaders
) {
return await this.client.fetch<HttpTypes.AdminStoreResponse>(
`/admin/stores/${id}`,
{
method: "POST",
headers,
body,
query,
}
)
}
}