Skip to content

Commit

Permalink
feat(com-pwa): admin-order-list page
Browse files Browse the repository at this point in the history
  • Loading branch information
njfamirm committed May 29, 2023
1 parent b5b07e1 commit f8d7249
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 28 deletions.
2 changes: 1 addition & 1 deletion uniquely/com-pwa/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export const config = {
newOrder: apiBaseUrl + 'order',

// admin access
userList: apiBaseUrl + 'user-list',
adminUserListIncOrder: apiBaseUrl + 'admin/user-list-inc-order',
},

fetchContextOptions: <Partial<FetchOptions>>{
Expand Down
3 changes: 3 additions & 0 deletions uniquely/com-pwa/src/content/l18e-fa.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
"loading": "درحال بارگذاری...",
"cancel": "لغو",
"invalid_phone_number": "شماره تلفن صحیح نمی‌باشد.",
"phone_number": "شماره تلفن",
"province": "استان",
"city": "شهر",

"page_404_not_found": "پیدا نشد!",
"page_404_under_develope": "دردست ساخت",
Expand Down
21 changes: 11 additions & 10 deletions uniquely/com-pwa/src/manager/context-provider/user-list-storage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,20 @@ import {serverContextConsumer} from '@alwatr/context';
import {userProfileContextConsumer} from './user.js';
import {config} from '../../config.js';

import type {AlwatrDocumentStorage} from '@alwatr/type';
import type {ComUser} from '@alwatr/type/customer-order-management.js';
import type {AlwatrServiceResponseSuccessWithMeta} from '@alwatr/type';
import type {ComUserIncOrder} from '@alwatr/type/customer-order-management.js';

export const userListStorageContextConsumer = serverContextConsumer<AlwatrDocumentStorage<ComUser>>(
'user_list_storage_context',
{
...config.fetchContextOptions,
url: config.serverContext.userList,
},
);
export const userListIncOrderStorageContextConsumer =
serverContextConsumer<AlwatrServiceResponseSuccessWithMeta<Record<string, ComUserIncOrder>>>(
'user_list_storage_context',
{
...config.fetchContextOptions,
url: config.serverContext.adminUserListIncOrder,
},
);

userProfileContextConsumer.subscribe((userProfile) => {
userListStorageContextConsumer.request({
userListIncOrderStorageContextConsumer.request({
userAuth: {
id: userProfile.id,
token: userProfile.token!,
Expand Down
8 changes: 4 additions & 4 deletions uniquely/com-pwa/src/ui/alwatr-pwa.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class AlwatrPwa extends AlwatrPwaElement {
'home': this._renderPageHome,
'_404': this._renderPage404,
'order-list': this._renderPageOrderList,
'user-list': this._renderPageUserList,
'admin-order-list': this._renderPageAdminOrderList,
'order': this._renderPageOrder,
'sign-in': this._renderPageSignIn,
's': this._saveLinkPass,
Expand Down Expand Up @@ -61,10 +61,10 @@ class AlwatrPwa extends AlwatrPwaElement {
return html`<alwatr-page-order-list unresolved>...</alwatr-page-order-list>`;
}

protected _renderPageUserList(): unknown {
import('./page/user-list.js');
protected _renderPageAdminOrderList(): unknown {
import('./page/admin-order-list.js');
topAppBarContextProvider.setValue({headlineKey: 'loading'});
return html`<alwatr-page-user-list unresolved>...</alwatr-page-user-list>`;
return html`<alwatr-page-admin-order-list unresolved>...</alwatr-page-admin-order-list>`;
}

protected _renderPageOrder(routeContext: RouteContext): unknown {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import {
UnresolvedMixin,
state,
ScheduleUpdateToFrameMixin,
guard,
when,
type PropertyValues,
mapObject,
Expand All @@ -20,7 +19,7 @@ import '@alwatr/ui-kit/card/icon-box.js';
import '@alwatr/ui-kit/card/surface.js';

import {buttons} from '../../manager/buttons.js';
import {userListStorageContextConsumer} from '../../manager/context-provider/user-list-storage.js';
import {userListIncOrderStorageContextConsumer} from '../../manager/context-provider/user-list-storage.js';
import {topAppBarContextProvider} from '../../manager/context.js';
import '../stuff/order-status-box.js';
import '../stuff/user-info-box.js';
Expand All @@ -29,15 +28,15 @@ import type {IconBoxContent} from '@alwatr/ui-kit/card/icon-box.js';

declare global {
interface HTMLElementTagNameMap {
'alwatr-page-user-list': AlwatrPageUserList;
'alwatr-page-admin-order-list': AlwatrPageAdminOrderList;
}
}

/**
* List of all users.
*/
@customElement('alwatr-page-user-list')
export class AlwatrPageUserList extends ScheduleUpdateToFrameMixin(
@customElement('alwatr-page-admin-order-list')
export class AlwatrPageAdminOrderList extends ScheduleUpdateToFrameMixin(
UnresolvedMixin(LocalizeMixin(SignalMixin(AlwatrBaseElement))),
) {
static override styles = css`
Expand Down Expand Up @@ -65,19 +64,19 @@ export class AlwatrPageUserList extends ScheduleUpdateToFrameMixin(
`;

@state()
gotState = userListStorageContextConsumer.getState().target;
gotState = userListIncOrderStorageContextConsumer.getState().target;

override connectedCallback(): void {
super.connectedCallback();

// prettier-ignore
this._addSignalListeners(userListStorageContextConsumer.subscribe(() => {
this.gotState = userListStorageContextConsumer.getState().target;
this._addSignalListeners(userListIncOrderStorageContextConsumer.subscribe(() => {
this.gotState = userListIncOrderStorageContextConsumer.getState().target;
}, {receivePrevious: 'NextCycle'}));

this._addSignalListeners(
eventListener.subscribe(buttons.retry.clickSignalId, () => {
userListStorageContextConsumer.request();
userListIncOrderStorageContextConsumer.request();
}),
);
}
Expand All @@ -91,7 +90,7 @@ export class AlwatrPageUserList extends ScheduleUpdateToFrameMixin(

override render(): unknown {
this._logger.logMethod?.('render');
return userListStorageContextConsumer.fsm.render({
return userListIncOrderStorageContextConsumer.fsm.render({
initial: 'onlineLoading',
offlineLoading: 'onlineLoading',
onlineLoading: () => {
Expand Down Expand Up @@ -137,20 +136,23 @@ export class AlwatrPageUserList extends ScheduleUpdateToFrameMixin(
});
return html`
${when(this.gotState === 'reloadingFailed', this._renderReloadingFailed)}
${guard(userListStorageContextConsumer.getResponse()?.meta.lastUpdated, () => this._renderUsersList())}
${this._renderUsersList()}
`;
},
});
}

private _renderUsersList(): unknown {
const userStorage = userListStorageContextConsumer.getResponse();
const userStorage = userListIncOrderStorageContextConsumer.getResponse();
this._logger.logMethodArgs?.('_renderUsersList', {userStorage});

return mapObject(
this,
userStorage?.data,
(user) => html`<alwatr-user-info-box .content=${user}></alwatr-order-info-box>`,
(userIncOrder) => {
// if (userIncOrder.fullName === 'Alwatr Admin') return;
return html`<alwatr-user-info-box .userIncOrder=${userIncOrder}></alwatr-order-info-box>`;
},
);
}

Expand Down

0 comments on commit f8d7249

Please sign in to comment.