Browse Source

fix(admin-ui): Correctly sort customer orders in detail view

Michael Bromley 2 years ago
parent
commit
86a17af665

+ 6 - 5
packages/admin-ui/src/lib/core/src/common/base-detail.component.ts

@@ -249,11 +249,12 @@ export function detailComponentWithResolver<
     query: T;
     entityKey: R;
     getBreadcrumbs?: (entity: ResultOf<T>[R]) => BreadcrumbValue;
+    variables?: T extends TypedDocumentNode<any, infer V> ? Omit<V, 'id'> : never;
 }) {
-    const resolveFn: ResolveFn<{ entity: Observable<ResultOf<T>[Field] | null>; result?: ResultOf<T> }> = (
-        route,
-        state,
-    ) => {
+    const resolveFn: ResolveFn<{
+        entity: Observable<ResultOf<T>[Field] | null>;
+        result?: ResultOf<T>;
+    }> = route => {
         const router = inject(Router);
         const dataService = inject(DataService);
         const id = route.paramMap.get('id');
@@ -268,7 +269,7 @@ export function detailComponentWithResolver<
             return of({ entity: of(null) });
         } else {
             const result$ = dataService
-                .query(config.query, { id })
+                .query(config.query, { id, ...(config.variables ?? {}) })
                 .refetchOnChannelChange()
                 .stream$.pipe(takeUntil(navigateAway$), shareReplay(1));
             const entity$ = result$.pipe(map(result => result[config.entityKey]));

+ 8 - 0
packages/admin-ui/src/lib/customer/src/customer.module.ts

@@ -8,6 +8,7 @@ import {
     GetCustomerGroupDetailDocument,
     PageService,
     SharedModule,
+    SortOrder,
 } from '@vendure/admin-ui/core';
 
 import { AddCustomerToGroupDialogComponent } from './components/add-customer-to-group-dialog/add-customer-to-group-dialog.component';
@@ -80,6 +81,13 @@ export class CustomerModule {
                 component: CustomerDetailComponent,
                 query: CustomerDetailQueryDocument,
                 entityKey: 'customer',
+                variables: {
+                    orderListOptions: {
+                        sort: {
+                            orderPlacedAt: SortOrder.DESC,
+                        },
+                    },
+                },
                 getBreadcrumbs: entity => [
                     {
                         label: entity