bananas-commerce-admin 0.20.0 → 0.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,47 @@
1
- import React from "react";
2
- import { TableCell, Typography } from "@mui/material";
3
- export const TableHeading = ({ children, typographyProps, ...props }) => (React.createElement(TableCell, { ...props },
4
- React.createElement(Typography, { ...typographyProps, sx: {
1
+ import React, { useState } from "react";
2
+ import UnfoldMoreIcon from "@mui/icons-material/UnfoldMore";
3
+ import { Box, ButtonBase, Popover, Stack, TableCell, Typography, } from "@mui/material";
4
+ export const TableHeading = ({ children, typographyProps, popover, popoverLabel, ...props }) => {
5
+ const [anchorEl, setAnchorEl] = useState(null);
6
+ const headingText = (React.createElement(Typography, { ...typographyProps, sx: {
5
7
  fontWeight: "600",
6
8
  fontVariationSettings: { sm: '"wdth" 100', xs: '"wdth" 75' },
7
9
  ...typographyProps?.sx,
8
- }, variant: "body2" }, children)));
10
+ }, variant: "body2" }, children));
11
+ return (React.createElement(TableCell, { ...props }, popover != null ? (React.createElement(React.Fragment, null,
12
+ React.createElement(ButtonBase, { sx: {
13
+ position: "relative",
14
+ borderRadius: 1,
15
+ zIndex: 0,
16
+ "&::before": {
17
+ content: '""',
18
+ position: "absolute",
19
+ inset: "-2px -4px",
20
+ borderRadius: 1,
21
+ backgroundColor: "action.hover",
22
+ opacity: 0,
23
+ transition: (theme) => theme.transitions.create("opacity", {
24
+ duration: theme.transitions.duration.shortest,
25
+ }),
26
+ zIndex: -1,
27
+ pointerEvents: "none",
28
+ },
29
+ "&:hover::before, &:focus-visible::before": { opacity: 1 },
30
+ "&:hover .popover-label, &:focus-visible .popover-label": {
31
+ backgroundColor: "transparent",
32
+ },
33
+ }, onClick: (e) => setAnchorEl(e.currentTarget) },
34
+ React.createElement(Stack, { alignItems: "center", direction: "row", gap: 0.5 },
35
+ headingText,
36
+ React.createElement(UnfoldMoreIcon, { sx: { color: "text.secondary", width: 16, height: 16 } })),
37
+ popoverLabel != null ? (React.createElement(Typography, { className: "popover-label", color: "text.secondary", sx: {
38
+ ml: 0.25,
39
+ px: 0.5,
40
+ borderRadius: 1,
41
+ backgroundColor: "action.hover",
42
+ }, variant: "body2" }, popoverLabel)) : null),
43
+ React.createElement(Popover, { anchorEl: anchorEl, anchorOrigin: { horizontal: "center", vertical: "bottom" }, open: Boolean(anchorEl), transformOrigin: { horizontal: "center", vertical: "top" }, onClose: () => setAnchorEl(null) },
44
+ React.createElement(Box, { p: 2 }, popover)))) : (headingText)));
45
+ };
9
46
  export default TableHeading;
10
47
  //# sourceMappingURL=TableHeading.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeading.js","sourceRoot":"","sources":["../../../../src/components/Table/TableHeading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAkB,UAAU,EAAmB,MAAM,eAAe,CAAC;AAMvF,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EACxD,QAAQ,EACR,eAAe,EACf,GAAG,KAAK,EACT,EAAE,EAAE,CAAC,CACJ,oBAAC,SAAS,OAAK,KAAK;IAClB,oBAAC,UAAU,OACL,eAAe,EACnB,EAAE,EAAE;YACF,UAAU,EAAE,KAAK;YACjB,qBAAqB,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE;YAC5D,GAAG,eAAe,EAAE,EAAE;SACvB,EACD,OAAO,EAAC,OAAO,IAEd,QAAQ,CACE,CACH,CACb,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"TableHeading.js","sourceRoot":"","sources":["../../../../src/components/Table/TableHeading.tsx"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import { TableCell } from "../../../components/Table/TableCell";
13
13
  import TableHead from "../../../components/Table/TableHead";
14
14
  import TableHeading from "../../../components/Table/TableHeading";
15
15
  import { useI18n } from "../../../contexts/I18nContext";
16
+ import { formatPurchaseNumber } from "../../../util/format_purchase_number";
16
17
  export const SubscriptionsListItem = ({ period }) => {
17
18
  const [open, setOpen] = useState(false);
18
19
  const { t } = useI18n();
@@ -26,7 +27,7 @@ export const SubscriptionsListItem = ({ period }) => {
26
27
  React.createElement(TableCell, null, DateTime.fromISO(period.from_date).toISODate()),
27
28
  React.createElement(TableCell, null, DateTime.fromISO(period.due_date).toISODate()),
28
29
  React.createElement(TableCell, { align: "right" }, period.amount),
29
- React.createElement(TableCell, { align: "right" }, period.purchase_number),
30
+ React.createElement(TableCell, { align: "right" }, formatPurchaseNumber(period.purchase_number)),
30
31
  React.createElement(TableCell, { align: "right" }, period.date_confirmed != null ? (React.createElement(Chip, { color: "success", icon: React.createElement(CheckCircleIcon, null), label: t("Paid"), size: "small", sx: { textTransform: "uppercase" } })) : (React.createElement(Chip, { color: "error", icon: React.createElement(CancelIcon, null), label: t("Not paid"), size: "small", sx: { textTransform: "uppercase" } }))),
31
32
  React.createElement(TableCell, { sx: { width: 34, pl: 0 } },
32
33
  React.createElement(Stack, { direction: "row", justifyContent: "end" },
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionsListItem.js","sourceRoot":"","sources":["../../../../../src/extensions/member/components/SubscriptionsListItem.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SubscriptionsListItem.js","sourceRoot":"","sources":["../../../../../src/extensions/member/components/SubscriptionsListItem.tsx"],"names":[],"mappings":"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"}
@@ -30,6 +30,7 @@ const MemberListPage = ({ data }) => {
30
30
  const [customerTypeFilter, setCustomerTypeFilter] = React.useState(defaultCustomerType === CustomerType.PRIVATE || defaultCustomerType === CustomerType.COMPANY
31
31
  ? defaultCustomerType
32
32
  : "ALL");
33
+ const customerTypeFilterCount = customerTypeFilter === "ALL" ? undefined : 1;
33
34
  const navigateWithFilters = React.useCallback((searchInput, customerType) => {
34
35
  const query = {};
35
36
  if (searchInput !== "") {
@@ -52,15 +53,10 @@ const MemberListPage = ({ data }) => {
52
53
  return (React.createElement(Page, null,
53
54
  React.createElement(Header, null,
54
55
  React.createElement(TitleBar, { title: t("Members") },
55
- React.createElement(Stack, { alignItems: "center", direction: { xs: "column", sm: "row" }, spacing: 2, width: "100%" },
56
- React.createElement(ToggleButtonGroup, { exclusive: true, "aria-label": "Customer type filter", color: "primary", size: "small", value: customerTypeFilter, onChange: handleCustomerTypeChange },
57
- React.createElement(ToggleButton, { size: "small", value: "ALL" }, t("All")),
58
- React.createElement(ToggleButton, { size: "small", value: CustomerType.PRIVATE }, t("Private")),
59
- React.createElement(ToggleButton, { size: "small", value: CustomerType.COMPANY }, t("Company"))),
60
- React.createElement(SearchBar, { defaultValue: defaultSearch, placeholder: t("Search members…"), onChange: (input) => setSearchValue(input), onSubmit: (input) => {
61
- setSearchValue(input);
62
- navigateWithFilters(input, customerTypeFilter);
63
- } })))),
56
+ React.createElement(SearchBar, { defaultValue: defaultSearch, placeholder: t("Search members…"), onChange: (input) => setSearchValue(input), onSubmit: (input) => {
57
+ setSearchValue(input);
58
+ navigateWithFilters(input, customerTypeFilter);
59
+ } }))),
64
60
  React.createElement(ContentWrapperWithActionBar, null,
65
61
  React.createElement(Content, { layout: "fullWidth" },
66
62
  React.createElement(TableCard, null,
@@ -71,6 +67,10 @@ const MemberListPage = ({ data }) => {
71
67
  React.createElement(TableHeading, null, t("Phone")),
72
68
  React.createElement(TableHeading, null, t("Email")),
73
69
  React.createElement(TableHeading, null, t("Site")),
70
+ React.createElement(TableHeading, { popover: React.createElement(ToggleButtonGroup, { exclusive: true, "aria-label": "Customer type filter", color: "primary", size: "small", value: customerTypeFilter, onChange: handleCustomerTypeChange },
71
+ React.createElement(ToggleButton, { size: "small", value: "ALL" }, t("All")),
72
+ React.createElement(ToggleButton, { size: "small", value: CustomerType.PRIVATE }, t("Private")),
73
+ React.createElement(ToggleButton, { size: "small", value: CustomerType.COMPANY }, t("Company"))), popoverLabel: customerTypeFilterCount }, t("Type")),
74
74
  React.createElement(TableHeading, { width: 60 })),
75
75
  React.createElement(TableBody, null, data?.results.map((member) => (React.createElement(NavigatingTableRow, { key: member.id, route: "member.member:detail", routeParams: { id: member.id } },
76
76
  React.createElement(TableCell, null, member.number),
@@ -81,6 +81,7 @@ const MemberListPage = ({ data }) => {
81
81
  React.createElement(TableCell, null, member.phone ?? "—"),
82
82
  React.createElement(TableCell, null, member.email),
83
83
  React.createElement(TableCell, null, member.site_code),
84
+ React.createElement(TableCell, null, member.customer_type),
84
85
  React.createElement(TableCell, null, !member.is_valid_customer ? (React.createElement(WarningAmberOutlinedIcon, { color: "warning", fontSize: "small" })) : null)))))))),
85
86
  hasPermission(user, "member.add_member") && (React.createElement(ActionBar, null,
86
87
  React.createElement(Button, { color: "primary", variant: "contained", onClick: () => navigate("member.member:create") }, t("Create member")))))));
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../../src/extensions/member/pages/member/list.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../../src/extensions/member/pages/member/list.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export function formatPurchaseNumber(number) {
2
2
  if (typeof number == "string") {
3
- return formatPurchaseNumber(parseInt(number));
3
+ return number.length > 0 ? `#${number}` : "—";
4
4
  }
5
5
  if (number != null && isFinite(number)) {
6
6
  return `#${number}`;
@@ -1 +1 @@
1
- {"version":3,"file":"format_purchase_number.js","sourceRoot":"","sources":["../../../src/util/format_purchase_number.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB,CAAC,MAAwB;IAC3D,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,OAAO,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,MAAM,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,MAAM,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"format_purchase_number.js","sourceRoot":"","sources":["../../../src/util/format_purchase_number.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB,CAAC,MAA+B;IAClE,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAChD,CAAC;IAED,IAAI,MAAM,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,MAAM,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -2,6 +2,8 @@ import React, { PropsWithChildren } from "react";
2
2
  import { TableCellProps, TypographyProps } from "@mui/material";
3
3
  export interface TableHeadingProps extends PropsWithChildren<TableCellProps> {
4
4
  typographyProps?: TypographyProps;
5
+ popover?: React.ReactNode;
6
+ popoverLabel?: React.ReactNode;
5
7
  }
6
8
  export declare const TableHeading: React.FC<TableHeadingProps>;
7
9
  export default TableHeading;
@@ -4,7 +4,7 @@ export type OrderDestinationType = "HOME" | "STORE" | "SERVICE_POINT" | "LOCKER"
4
4
  export type OrderStateType = "PENDING" | "CONFIRMED" | "SENT" | "IN_TRANSIT" | "READY_FOR_PICKUP" | "DELIVERED" | "CANCELLED";
5
5
  export interface OrderListItem {
6
6
  reference: string;
7
- purchase_number: number;
7
+ purchase_number: string;
8
8
  email: string;
9
9
  phone: string | null;
10
10
  option_name: string;
@@ -21,7 +21,7 @@ export interface OrderListItem {
21
21
  }
22
22
  export interface OrderDetail {
23
23
  reference: string;
24
- purchase_number: number;
24
+ purchase_number: string;
25
25
  email: string;
26
26
  phone: string | null;
27
27
  destination_type: OrderDestinationType;
@@ -10,7 +10,7 @@ export interface PurchaseItem {
10
10
  line_number: number;
11
11
  }
12
12
  export interface Purchase {
13
- number: number;
13
+ number: string;
14
14
  checkout_session: string;
15
15
  main_payment_identifier: null;
16
16
  date_created: string;
@@ -10,7 +10,7 @@ export interface SubscriptionPeriod {
10
10
  from_date: string;
11
11
  expiry_date: string;
12
12
  amount: string;
13
- purchase_number: number;
13
+ purchase_number: string | null;
14
14
  due_date: string;
15
15
  date_confirmed: string;
16
16
  charges: Charge[];
@@ -1,6 +1,6 @@
1
1
  import { Receipt } from "./receipt";
2
2
  export interface PurchaseDetail {
3
- number: number;
3
+ number: string;
4
4
  checkout_session?: string;
5
5
  main_payment_identifier?: string;
6
6
  date_initiated: string;
@@ -1 +1 @@
1
- export declare function formatPurchaseNumber(number?: number | string): string;
1
+ export declare function formatPurchaseNumber(number?: number | string | null): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bananas-commerce-admin",
3
- "version": "0.20.0",
3
+ "version": "0.20.2",
4
4
  "description": "What's this, an admin for apes?",
5
5
  "keywords": [
6
6
  "admin",
@@ -1,17 +1,33 @@
1
- import React, { PropsWithChildren } from "react";
1
+ import React, { PropsWithChildren, useState } from "react";
2
2
 
3
- import { TableCell, TableCellProps, Typography, TypographyProps } from "@mui/material";
3
+ import UnfoldMoreIcon from "@mui/icons-material/UnfoldMore";
4
+ import {
5
+ Box,
6
+ ButtonBase,
7
+ Popover,
8
+ Stack,
9
+ TableCell,
10
+ TableCellProps,
11
+ Typography,
12
+ TypographyProps,
13
+ } from "@mui/material";
4
14
 
5
15
  export interface TableHeadingProps extends PropsWithChildren<TableCellProps> {
6
16
  typographyProps?: TypographyProps;
17
+ popover?: React.ReactNode;
18
+ popoverLabel?: React.ReactNode;
7
19
  }
8
20
 
9
21
  export const TableHeading: React.FC<TableHeadingProps> = ({
10
22
  children,
11
23
  typographyProps,
24
+ popover,
25
+ popoverLabel,
12
26
  ...props
13
- }) => (
14
- <TableCell {...props}>
27
+ }) => {
28
+ const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);
29
+
30
+ const headingText = (
15
31
  <Typography
16
32
  {...typographyProps}
17
33
  sx={{
@@ -23,7 +39,75 @@ export const TableHeading: React.FC<TableHeadingProps> = ({
23
39
  >
24
40
  {children}
25
41
  </Typography>
26
- </TableCell>
27
- );
42
+ );
43
+
44
+ return (
45
+ <TableCell {...props}>
46
+ {popover != null ? (
47
+ <>
48
+ <ButtonBase
49
+ sx={{
50
+ position: "relative",
51
+ borderRadius: 1,
52
+ zIndex: 0,
53
+ "&::before": {
54
+ content: '""',
55
+ position: "absolute",
56
+ inset: "-2px -4px",
57
+ borderRadius: 1,
58
+ backgroundColor: "action.hover",
59
+ opacity: 0,
60
+ transition: (theme) =>
61
+ theme.transitions.create("opacity", {
62
+ duration: theme.transitions.duration.shortest,
63
+ }),
64
+ zIndex: -1,
65
+ pointerEvents: "none",
66
+ },
67
+ "&:hover::before, &:focus-visible::before": { opacity: 1 },
68
+ "&:hover .popover-label, &:focus-visible .popover-label": {
69
+ backgroundColor: "transparent",
70
+ },
71
+ }}
72
+ onClick={(e) => setAnchorEl(e.currentTarget)}
73
+ >
74
+ <Stack alignItems="center" direction="row" gap={0.5}>
75
+ {headingText}
76
+ <UnfoldMoreIcon sx={{ color: "text.secondary", width: 16, height: 16 }} />
77
+ </Stack>
78
+
79
+ {popoverLabel != null ? (
80
+ <Typography
81
+ className="popover-label"
82
+ color="text.secondary"
83
+ sx={{
84
+ ml: 0.25,
85
+ px: 0.5,
86
+ borderRadius: 1,
87
+ backgroundColor: "action.hover",
88
+ }}
89
+ variant="body2"
90
+ >
91
+ {popoverLabel}
92
+ </Typography>
93
+ ) : null}
94
+ </ButtonBase>
95
+
96
+ <Popover
97
+ anchorEl={anchorEl}
98
+ anchorOrigin={{ horizontal: "center", vertical: "bottom" }}
99
+ open={Boolean(anchorEl)}
100
+ transformOrigin={{ horizontal: "center", vertical: "top" }}
101
+ onClose={() => setAnchorEl(null)}
102
+ >
103
+ <Box p={2}>{popover}</Box>
104
+ </Popover>
105
+ </>
106
+ ) : (
107
+ headingText
108
+ )}
109
+ </TableCell>
110
+ );
111
+ };
28
112
 
29
113
  export default TableHeading;
@@ -14,7 +14,7 @@ export type OrderStateType =
14
14
 
15
15
  export interface OrderListItem {
16
16
  reference: string;
17
- purchase_number: number;
17
+ purchase_number: string;
18
18
  email: string;
19
19
  phone: string | null;
20
20
  option_name: string;
@@ -32,7 +32,7 @@ export interface OrderListItem {
32
32
 
33
33
  export interface OrderDetail {
34
34
  reference: string;
35
- purchase_number: number;
35
+ purchase_number: string;
36
36
  email: string;
37
37
  phone: string | null;
38
38
  destination_type: OrderDestinationType;
@@ -16,6 +16,7 @@ import { TableCell } from "../../../components/Table/TableCell";
16
16
  import TableHead from "../../../components/Table/TableHead";
17
17
  import TableHeading from "../../../components/Table/TableHeading";
18
18
  import { useI18n } from "../../../contexts/I18nContext";
19
+ import { formatPurchaseNumber } from "../../../util/format_purchase_number";
19
20
  import { SubscriptionPeriod } from "../types/subscription";
20
21
 
21
22
  export interface SubscriptionsListItemProps {
@@ -41,7 +42,7 @@ export const SubscriptionsListItem: React.FC<SubscriptionsListItemProps> = ({ pe
41
42
  <TableCell>{DateTime.fromISO(period.from_date as string).toISODate()}</TableCell>
42
43
  <TableCell>{DateTime.fromISO(period.due_date as string).toISODate()}</TableCell>
43
44
  <TableCell align="right">{period.amount}</TableCell>
44
- <TableCell align="right">{period.purchase_number}</TableCell>
45
+ <TableCell align="right">{formatPurchaseNumber(period.purchase_number)}</TableCell>
45
46
  <TableCell align="right">
46
47
  {period.date_confirmed != null ? (
47
48
  <Chip
@@ -38,6 +38,7 @@ const MemberListPage: PageComponent<LimitOffset<MemberList>> = ({ data }) => {
38
38
  ? defaultCustomerType
39
39
  : "ALL",
40
40
  );
41
+ const customerTypeFilterCount = customerTypeFilter === "ALL" ? undefined : 1;
41
42
 
42
43
  const navigateWithFilters = React.useCallback(
43
44
  (searchInput: string, customerType: CustomerTypeFilter) => {
@@ -73,40 +74,15 @@ const MemberListPage: PageComponent<LimitOffset<MemberList>> = ({ data }) => {
73
74
  <Page>
74
75
  <Header>
75
76
  <TitleBar title={t("Members")}>
76
- <Stack
77
- alignItems="center"
78
- direction={{ xs: "column", sm: "row" }}
79
- spacing={2}
80
- width="100%"
81
- >
82
- <ToggleButtonGroup
83
- exclusive
84
- aria-label="Customer type filter"
85
- color="primary"
86
- size="small"
87
- value={customerTypeFilter}
88
- onChange={handleCustomerTypeChange}
89
- >
90
- <ToggleButton size="small" value="ALL">
91
- {t("All")}
92
- </ToggleButton>
93
- <ToggleButton size="small" value={CustomerType.PRIVATE}>
94
- {t("Private")}
95
- </ToggleButton>
96
- <ToggleButton size="small" value={CustomerType.COMPANY}>
97
- {t("Company")}
98
- </ToggleButton>
99
- </ToggleButtonGroup>
100
- <SearchBar
101
- defaultValue={defaultSearch}
102
- placeholder={t("Search members…")}
103
- onChange={(input) => setSearchValue(input)}
104
- onSubmit={(input) => {
105
- setSearchValue(input);
106
- navigateWithFilters(input, customerTypeFilter);
107
- }}
108
- />
109
- </Stack>
77
+ <SearchBar
78
+ defaultValue={defaultSearch}
79
+ placeholder={t("Search members…")}
80
+ onChange={(input) => setSearchValue(input)}
81
+ onSubmit={(input) => {
82
+ setSearchValue(input);
83
+ navigateWithFilters(input, customerTypeFilter);
84
+ }}
85
+ />
110
86
  </TitleBar>
111
87
  </Header>
112
88
 
@@ -120,6 +96,31 @@ const MemberListPage: PageComponent<LimitOffset<MemberList>> = ({ data }) => {
120
96
  <TableHeading>{t("Phone")}</TableHeading>
121
97
  <TableHeading>{t("Email")}</TableHeading>
122
98
  <TableHeading>{t("Site")}</TableHeading>
99
+ <TableHeading
100
+ popover={
101
+ <ToggleButtonGroup
102
+ exclusive
103
+ aria-label="Customer type filter"
104
+ color="primary"
105
+ size="small"
106
+ value={customerTypeFilter}
107
+ onChange={handleCustomerTypeChange}
108
+ >
109
+ <ToggleButton size="small" value="ALL">
110
+ {t("All")}
111
+ </ToggleButton>
112
+ <ToggleButton size="small" value={CustomerType.PRIVATE}>
113
+ {t("Private")}
114
+ </ToggleButton>
115
+ <ToggleButton size="small" value={CustomerType.COMPANY}>
116
+ {t("Company")}
117
+ </ToggleButton>
118
+ </ToggleButtonGroup>
119
+ }
120
+ popoverLabel={customerTypeFilterCount}
121
+ >
122
+ {t("Type")}
123
+ </TableHeading>
123
124
  <TableHeading width={60} />
124
125
  </TableHead>
125
126
 
@@ -140,6 +141,7 @@ const MemberListPage: PageComponent<LimitOffset<MemberList>> = ({ data }) => {
140
141
  <TableCell>{member.phone ?? "—"}</TableCell>
141
142
  <TableCell>{member.email}</TableCell>
142
143
  <TableCell>{member.site_code}</TableCell>
144
+ <TableCell>{member.customer_type}</TableCell>
143
145
  <TableCell>
144
146
  {!member.is_valid_customer ? (
145
147
  <WarningAmberOutlinedIcon color="warning" fontSize="small" />
@@ -12,7 +12,7 @@ export interface PurchaseItem {
12
12
  }
13
13
 
14
14
  export interface Purchase {
15
- number: number;
15
+ number: string;
16
16
  checkout_session: string;
17
17
  main_payment_identifier: null;
18
18
  date_created: string;
@@ -11,7 +11,7 @@ export interface SubscriptionPeriod {
11
11
  from_date: string;
12
12
  expiry_date: string;
13
13
  amount: string;
14
- purchase_number: number;
14
+ purchase_number: string | null;
15
15
  due_date: string;
16
16
  date_confirmed: string;
17
17
  charges: Charge[];
@@ -1,7 +1,7 @@
1
1
  import { Receipt } from "./receipt";
2
2
 
3
3
  export interface PurchaseDetail {
4
- number: number;
4
+ number: string;
5
5
  checkout_session?: string;
6
6
  main_payment_identifier?: string;
7
7
  date_initiated: string;
@@ -1,6 +1,6 @@
1
- export function formatPurchaseNumber(number?: number | string): string {
1
+ export function formatPurchaseNumber(number?: number | string | null): string {
2
2
  if (typeof number == "string") {
3
- return formatPurchaseNumber(parseInt(number));
3
+ return number.length > 0 ? `#${number}` : "—";
4
4
  }
5
5
 
6
6
  if (number != null && isFinite(number)) {