@@ -7,6 +7,7 @@ import { transformApiResponse } from './transform';
77import { storeApiClient } from '@/utils/api' ;
88import { ApiV1StoreProductsGet200Response } from '@acm-uiuc/core-client' ;
99
10+ type Product = ApiV1StoreProductsGet200Response [ 'products' ] [ number ] ;
1011const MerchStore = ( ) => {
1112 const [ itemsList , setItemsList ] = useState < Array < Record < string , any > > > ( [ ] ) ;
1213 const baseUrl = process . env . NEXT_PUBLIC_CORE_API_BASE_URL ;
@@ -20,7 +21,15 @@ const MerchStore = () => {
2021 const metaLoader = async ( ) => {
2122 try {
2223 const data = await storeApiClient . apiV1StoreProductsGet ( ) ;
23- setItemsList ( transformApiResponse ( data ) ) ;
24+ const filteredData = {
25+ products : data . products . filter (
26+ (
27+ x ,
28+ ) : x is Product & { productId : NonNullable < Product [ 'productId' ] > } =>
29+ x . productId !== null ,
30+ ) ,
31+ } ;
32+ setItemsList ( transformApiResponse ( filteredData ) ) ;
2433 } catch ( e ) {
2534 console . error ( 'failed to get products' , e ) ;
2635 setItemsList ( [
@@ -75,7 +84,7 @@ const MerchStore = () => {
7584 < p >
7685 < b > Cost:</ b > ${ decimalHelper ( val [ 'item_price' ] [ 'paid' ] ) } for{ ' ' }
7786 { val [ 'valid_member_lists' ] &&
78- val [ 'valid_member_lists' ] . length > 0
87+ val [ 'valid_member_lists' ] . length > 0
7988 ? 'paid ACM@UIUC and eligible partner organization'
8089 : 'paid ACM@UIUC' } { ' ' }
8190 members, ${ decimalHelper ( val [ 'item_price' ] [ 'others' ] ) } for
0 commit comments