From 66ce5c28adb1715c24839babce53ba3b2bc5de3a Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 May 2025 22:34:24 +0700 Subject: [PATCH 01/12] fix kyc --- src/pages/members/manage-members/blocks/DetailMember.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/members/manage-members/blocks/DetailMember.tsx b/src/pages/members/manage-members/blocks/DetailMember.tsx index 5a73e27..96dc614 100644 --- a/src/pages/members/manage-members/blocks/DetailMember.tsx +++ b/src/pages/members/manage-members/blocks/DetailMember.tsx @@ -186,7 +186,7 @@ const DetailMember = ({ showAddDialog, setShowAddDialog, handleSubmit, initialDa if (formData.destinationGroup === "Premium" && !formData.approval_description_premium) return toast.warning(`Approval Premium Description needed!`) if (formData.destinationGroup === "Agent" && !formData.approval_description_premium) return toast.warning(`Approval Agent Description needed!`) handleReject(formData); - handleClose(); + // handleClose(); } return ( From 5b837d8cc20dd5a776687e6c1ecf2790fe7a55bb Mon Sep 17 00:00:00 2001 From: bagusajisaputroo Date: Thu, 15 May 2025 23:20:11 +0700 Subject: [PATCH 02/12] Remove is bank on wallet history --- .../hooks/ManageWalletHistoryContext.tsx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/pages/wallet/wallet-history/hooks/ManageWalletHistoryContext.tsx b/src/pages/wallet/wallet-history/hooks/ManageWalletHistoryContext.tsx index b1ad5b5..1431e45 100644 --- a/src/pages/wallet/wallet-history/hooks/ManageWalletHistoryContext.tsx +++ b/src/pages/wallet/wallet-history/hooks/ManageWalletHistoryContext.tsx @@ -182,16 +182,16 @@ const ManageWalletContextProvider = ({ children }: { children: React.ReactNode } headerClassName: 'w-[200px]' } }, - { - accessorFn: (row) => row.group?.is_bank, - id: 'is_bank', - header: ({ column }) => , - enableSorting: false, - enableHiding: false, - meta: { - headerClassName: 'w-[200px]' - } - } + // { + // accessorFn: (row) => row.group?.is_bank, + // id: 'is_bank', + // header: ({ column }) => , + // enableSorting: false, + // enableHiding: false, + // meta: { + // headerClassName: 'w-[200px]' + // } + // } ], [] ); From d9ddbd596e10400a2c692a7562e7f67e06a53ed9 Mon Sep 17 00:00:00 2001 From: wayanrivan Date: Fri, 16 May 2025 09:37:10 +0700 Subject: [PATCH 03/12] add environment for production --- .dockerignore | 0 .woodpecker.yml | 46 +++++++++++++++++++ Dockerfile | 40 ++++++++++++++++ .../blocks/DetailTransaction.tsx | 8 ++++ ⁠docker-compose.yml | 11 +++++ 5 files changed, 105 insertions(+) create mode 100644 .dockerignore create mode 100644 .woodpecker.yml create mode 100644 Dockerfile create mode 100644 ⁠docker-compose.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..e69de29 diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..be0280b --- /dev/null +++ b/.woodpecker.yml @@ -0,0 +1,46 @@ +steps: + - name: setup + image: node:22-alpine + commands: + - apk update && apk add git + - npm i typescript -g + - npm install + - echo '✅ success setup project' + when: + branch: + - main + + - name: build-swagger + image: node:22-alpine + environment: + NODE_ENV: prod + commands: + - npm run swagger + when: + branch: + - main + + - name: build-src + image: node:22-alpine + environment: + NODE_ENV: prod + commands: + - npm i typescript -g + - npm run build:production + - echo '✅ success compile typescript and ready to deploy' + when: + branch: + - main + + - name: deploy + image: docker + commands: + - docker builder prune -f + - docker container prune -f + - docker-compose build + - docker-compose up -d --no-deps --build --remove-orphans + volumes: + - /var/run/docker.sock:/var/run/docker.sock + when: + branch: + - main diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..471bcaf --- /dev/null +++ b/Dockerfile @@ -0,0 +1,40 @@ +FROM node:22-alpine AS base + +RUN apk update && apk add git + +COPY package.json ./ + +RUN npm install +#RUN npm install typescript -g + +# add folder if needs more +COPY src ./src +# COPY config ./config +# COPY assets ./assets +COPY public ./public + +COPY tsconfig.json ./tsconfig.json + +ENV NODE_ENV=prod +# RUN npm run swagger + +RUN npm run build:production + +FROM node:22-alpine + +# Copy node modules and build directory from base image to new image +COPY --from=base ./node_modules ./node_modules +COPY --from=base ./package.json ./package.json +COPY --from=base /dist /dist +# COPY --from=base /config /config +# COPY --from=base /config /dist/config +# COPY --from=base /assets /assets +COPY --from=base /src /src +COPY --from=base /public /public + +# Expose required port +# CMD ["npm", "run", "start"] +FROM nginx:alpine +COPY --from=builder /app/dist /usr/share/nginx/html +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/src/pages/transaction/history-transaction/blocks/DetailTransaction.tsx b/src/pages/transaction/history-transaction/blocks/DetailTransaction.tsx index 6a9dd4f..b16f0fd 100644 --- a/src/pages/transaction/history-transaction/blocks/DetailTransaction.tsx +++ b/src/pages/transaction/history-transaction/blocks/DetailTransaction.tsx @@ -496,11 +496,19 @@ const DetailTransaction = () => {

Full Name

+<<<<<<< Updated upstream

{transactionDetails?.origin_customer?.origin_name}

Phone Number

{transactionDetails?.origin_msisdn}

+======= +

{transactionDetails?.origin_customer?.fullname ?? transactionDetails?.origin_customer?.origin_name}

+
+
+

Phone Number

+

{transactionDetails?.origin_customer?.msisdn ?? transactionDetails?.origin_msisdn}

+>>>>>>> Stashed changes

Email

diff --git a/⁠docker-compose.yml b/⁠docker-compose.yml new file mode 100644 index 0000000..ec677ef --- /dev/null +++ b/⁠docker-compose.yml @@ -0,0 +1,11 @@ +version: '3.9' + +services: + api: + image: app-dashboard:1.0.0 + container_name: app-dashboard + build: . + command: npm run start + ports: + - '4040:4040' # Specify the exposed port, we will need this to access the app from local machine + From e43f06cf2658f1cf85f7e2e005fca7a1931879d4 Mon Sep 17 00:00:00 2001 From: wayanrivan Date: Fri, 16 May 2025 09:37:52 +0700 Subject: [PATCH 04/12] add environment for production --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 471bcaf..ab64eef 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,6 +35,6 @@ COPY --from=base /public /public # Expose required port # CMD ["npm", "run", "start"] FROM nginx:alpine -COPY --from=builder /app/dist /usr/share/nginx/html +COPY --from=base /app/dist /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file From 0b1ef14abe7748308b9472751ad6a30ee58d0ddc Mon Sep 17 00:00:00 2001 From: wayanrivan Date: Fri, 16 May 2025 10:01:50 +0700 Subject: [PATCH 05/12] update --- .../history-transaction/blocks/DetailTransaction.tsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/pages/transaction/history-transaction/blocks/DetailTransaction.tsx b/src/pages/transaction/history-transaction/blocks/DetailTransaction.tsx index b16f0fd..34e6b81 100644 --- a/src/pages/transaction/history-transaction/blocks/DetailTransaction.tsx +++ b/src/pages/transaction/history-transaction/blocks/DetailTransaction.tsx @@ -496,19 +496,16 @@ const DetailTransaction = () => {

Full Name

-<<<<<<< Updated upstream

{transactionDetails?.origin_customer?.origin_name}

Phone Number

{transactionDetails?.origin_msisdn}

-=======

{transactionDetails?.origin_customer?.fullname ?? transactionDetails?.origin_customer?.origin_name}

Phone Number

{transactionDetails?.origin_customer?.msisdn ?? transactionDetails?.origin_msisdn}

->>>>>>> Stashed changes

Email

From 092e91150c9a041c730042d13696debe56c9e018 Mon Sep 17 00:00:00 2001 From: Abdul Rahman Reza Date: Fri, 16 May 2025 14:15:12 +0900 Subject: [PATCH 06/12] update compose --- docker-compose.yml | 10 ++++++++++ ⁠docker-compose.yml | 11 ----------- 2 files changed, 10 insertions(+), 11 deletions(-) create mode 100644 docker-compose.yml delete mode 100644 ⁠docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..18dc0b1 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,10 @@ +version: '3.9' + +services: + api: + image: app-dashboard:1.0.0 + container_name: app-dashboard + build: . + ports: + - '4040:4040' # Specify the exposed port, we will need this to access the app from local machine + diff --git a/⁠docker-compose.yml b/⁠docker-compose.yml deleted file mode 100644 index ec677ef..0000000 --- a/⁠docker-compose.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: '3.9' - -services: - api: - image: app-dashboard:1.0.0 - container_name: app-dashboard - build: . - command: npm run start - ports: - - '4040:4040' # Specify the exposed port, we will need this to access the app from local machine - From c6b964f8b3edfe5ec941c108539c70a03f100fb9 Mon Sep 17 00:00:00 2001 From: Abdul Rahman Reza Date: Fri, 16 May 2025 14:31:01 +0900 Subject: [PATCH 07/12] add package --- .gitignore | 1 + package.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index a93a63a..87df3b4 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,4 @@ package-lock.json package.json yarn.lock package-lock.json +package-lock.json diff --git a/package.json b/package.json index 09bf451..43c45d3 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "styled-components": "^6.1.13", "stylis": "^4.3.4", "stylis-plugin-rtl": "^2.1.1", - "sweetalert2": "^11.19.1", + "sweetalert2": "^11.21.0", "tabs": "^0.2.0", "tailwind-merge": "^2.5.4", "tailwindcss-animate": "^1.0.7", From 2575255f5bf9415e1ed55a942bcba1ac29848564 Mon Sep 17 00:00:00 2001 From: Abdul Rahman Reza Date: Fri, 16 May 2025 15:04:13 +0900 Subject: [PATCH 08/12] update docker config --- Dockerfile | 23 +++++++++++------------ docker-compose.yml | 5 +++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index ab64eef..8fbc672 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,18 +5,21 @@ RUN apk update && apk add git COPY package.json ./ RUN npm install -#RUN npm install typescript -g +RUN npm install typescript -g # add folder if needs more COPY src ./src -# COPY config ./config -# COPY assets ./assets COPY public ./public COPY tsconfig.json ./tsconfig.json - -ENV NODE_ENV=prod -# RUN npm run swagger +COPY tsconfig.node.json ./tsconfig.node.json +COPY vite.config.ts ./vite.config.ts +COPY tailwind.config.js ./tailwind.config.js +COPY postcss.config.js ./postcss.config.js +COPY eslint.config.mjs ./eslint.config.mjs +COPY .env.production ./.env.production +COPY .prettierrc ./.prettierrc +COPY index.html ./index.html RUN npm run build:production @@ -26,15 +29,11 @@ FROM node:22-alpine COPY --from=base ./node_modules ./node_modules COPY --from=base ./package.json ./package.json COPY --from=base /dist /dist -# COPY --from=base /config /config -# COPY --from=base /config /dist/config -# COPY --from=base /assets /assets COPY --from=base /src /src COPY --from=base /public /public # Expose required port -# CMD ["npm", "run", "start"] FROM nginx:alpine -COPY --from=base /app/dist /usr/share/nginx/html -EXPOSE 80 +COPY --from=base /dist /usr/share/nginx/html + CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 18dc0b1..4d02655 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,9 +2,10 @@ version: '3.9' services: api: - image: app-dashboard:1.0.0 + image: app-dashboard:1.0.1 + restart: always container_name: app-dashboard build: . ports: - - '4040:4040' # Specify the exposed port, we will need this to access the app from local machine + - '4040:80' # Specify the exposed port, we will need this to access the app from local machine From 45bdfe78965620d199db2a7704e38961f4cd46c1 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 16 May 2025 14:32:08 +0700 Subject: [PATCH 09/12] ssr member --- .../members/manage-members/ManageMembers.tsx | 187 +++++++++++++----- 1 file changed, 136 insertions(+), 51 deletions(-) diff --git a/src/pages/members/manage-members/ManageMembers.tsx b/src/pages/members/manage-members/ManageMembers.tsx index 3739311..42937ae 100644 --- a/src/pages/members/manage-members/ManageMembers.tsx +++ b/src/pages/members/manage-members/ManageMembers.tsx @@ -1,7 +1,7 @@ import { DataTable } from '@/components/ui/DataTable'; import { apiConfig } from '@/config/api.config'; import { getColumns, Members, initialMember } from './Columns'; -import { useState, useEffect } from 'react'; +import { useState, useEffect, useCallback } from 'react'; import axios from 'axios'; import DetailMember from './blocks/DetailMember'; import ConfirmDialog from '@/components/confirm'; @@ -29,7 +29,7 @@ const ManageMembers = () => { const [groups, setGroups] = useState([]); const [isReloading, setIsReloading] = useState(false); const [currentPage, setCurrentPage] = useState(0); - const [totalItems, setTotalItems] = useState(10); + const [pageSize, setPageSize] = useState(10); const closeDialog = () => { setIsDialogOpen(false); @@ -38,40 +38,129 @@ const ManageMembers = () => { const { getUser } = useAuthContext(); useEffect(() => { - fetchCustomers(); + // fetchCustomers(); fetchMasters(); }, []); - async function fetchCustomers(): Promise { - setIsReloading(true); - try { - let customers = await axios.get(`${BASE_URL}/customer/list`, { - params: { - limit: 30, - page: 1 + currentPage, - with_deleted: false, - order_field: 'created_at', - order_direction: 'DESC' - } - }); - let temp = 1; - let resMembers = customers.data.data.list.map((el: any) => { - el.no = temp++; - if (el.date_birth) { - const d = new Date(el.date_birth); - el.date_birth = d.toLocaleString('sv-SE'); - } - el.name = el.fullname; - return el; - }); - setMembers(resMembers); - } catch (error: any) { - toast.error(error.message); - console.log(error); - } finally { - setIsReloading(false); - } - } + // async function fetchCustomers(): Promise { + // setIsReloading(true); + // try { + // let customers = await axios.get(`${BASE_URL}/customer/list`, { + // params: { + // limit: pageSize, + // page: 1 + currentPage, + // with_deleted: false, + // order_field: 'created_at', + // order_direction: 'DESC' + // } + // }); + // let temp = 1; + // let resMembers = customers.data.data.list.map((el: any) => { + // el.no = temp++; + // if (el.date_birth) { + // const d = new Date(el.date_birth); + // el.date_birth = d.toLocaleString('sv-SE'); + // } + // el.name = el.fullname; + // return el; + // }); + // setMembers(resMembers); + // return { + // data: resMembers, + // totalCount: customers.data.data.total_count, + // } + // } catch (error: any) { + // toast.error(error.message); + // console.log(error); + // } finally { + // setIsReloading(false); + // } + // } + + // const fetchCustomers = useCallback( + // async ({ pageIndex, pageSize }:any) => { + // setIsReloading(true); + // try { + // const res = await axios.get(`${BASE_URL}/customer/list`, { + // params: { + // limit: pageSize, + // page: pageIndex + 1, // +1 because your API uses 1-based pages + // with_deleted: false, + // order_field: 'created_at', + // order_direction: 'DESC', + // }, + // }); + + // const customers = res.data.data.list.map((el: any, index: number) => ({ + // ...el, + // no: pageIndex * pageSize + index + 1, + // date_birth: el.date_birth + // ? new Date(el.date_birth).toLocaleString('sv-SE') + // : null, + // name: el.fullname, + // })); + + // return { + // data: customers, + // totalCount: res.data.data.total_count, + // }; + // } catch (error: any) { + // toast.error(error.message); + // console.error(error); + // return { data: [], totalCount: 0 }; + // } finally { + // setIsReloading(false); + // } + // }, + // [] + // ); + + const fetchCustomers = async ( + page: number, + limit: number, + sorting: any, + filter: any + ) => { + // [ SAMPLE + // { + // "id": "username", + // "value": "d" + // }, + // { + // "id": "group_name", + // "value": "Bank" + // }, + // { + // "id": "msisdn", + // "value": "88" + // } + // ] + sorting = sorting.length == 0 ? [{ id: 'name', desc: true }] : sorting; + // filter = filter.length ? { any: filter[0].value?.toLowerCase() } : {}; + filter = filter.length ? filter : {}; + + const res = await axios.get(`${BASE_URL}/customer/list`, { + params: { + limit: limit, + page: page + 1, // +1 because your API uses 1-based pages + with_deleted: false, + order_field: 'created_at', + order_direction: 'DESC', + filter: JSON.stringify(filter), + specialFilter: true + }, + }); + + const customers = res.data.data.list.map((el: any, index: number) => ({ + ...el, + no: page * pageSize + index + 1, + date_birth: el.date_birth + ? new Date(el.date_birth).toLocaleString('sv-SE') + : null, + name: el.fullname, + })); + return { data: customers, totalCount: res?.data.data.total_count }; + }; async function fetchMasters(): Promise { setIsReloading(true); @@ -123,9 +212,10 @@ const ManageMembers = () => { setDialogOpen(true); } - const handleReload = () => { + const handleReload = async () => { setIsReloading(true); - fetchCustomers(); + await fetchCustomers(currentPage, pageSize, '',''); + setIsReloading(false); }; const handleYes = async () => { @@ -213,7 +303,6 @@ const ManageMembers = () => { } finally { setDialogOpen(false); closeDialog(); - await fetchCustomers(); // setLoading(false); setIsReloading(false); } @@ -222,7 +311,6 @@ const ManageMembers = () => { function setShowAddDialog(el: any) { setIsDialogOpen(el); } - // if (isReloading) return ; return ( <> @@ -245,7 +333,7 @@ const ManageMembers = () => { handleClose={closeDialog} handleSubmit={handleSubmit} initialData={member} - fetchCustomers={fetchCustomers} + fetchCustomers={handleReload} profession={profession} dialogType={dialogType} /> @@ -265,26 +353,22 @@ const ManageMembers = () => { Manage Members - {/*
*/}
{isReloading && ( - //
- //
- //
- // - // Refreshing data... - //
- //
- //
)} - + fetchCustomers(pageIndex, pageSize, sorting, columnFilters) + } toolbar={ { if (selectedRow) handleUpdate(selectedRow.original); }} > + )}
{/*
*/} From 37fb0525f66805c391fdd42a391e21b210a7d0b1 Mon Sep 17 00:00:00 2001 From: bagusajisaputroo Date: Sat, 17 May 2025 00:22:42 +0700 Subject: [PATCH 10/12] add "L" on status_kind field --- src/pages/transfer/transfertype/blocks/AddDialog.tsx | 1 + src/pages/transfer/transfertype/blocks/EditDialog.tsx | 1 + .../transfer/transfertype/hooks/ManageTransferTypeContext.tsx | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pages/transfer/transfertype/blocks/AddDialog.tsx b/src/pages/transfer/transfertype/blocks/AddDialog.tsx index 2c4ec65..f29bfdc 100644 --- a/src/pages/transfer/transfertype/blocks/AddDialog.tsx +++ b/src/pages/transfer/transfertype/blocks/AddDialog.tsx @@ -560,6 +560,7 @@ const AddDialog = () => { Top Up Top Up Patner Reward + Purchase Loja {errors.status_kind && ( diff --git a/src/pages/transfer/transfertype/blocks/EditDialog.tsx b/src/pages/transfer/transfertype/blocks/EditDialog.tsx index cf761c8..3f71dd1 100644 --- a/src/pages/transfer/transfertype/blocks/EditDialog.tsx +++ b/src/pages/transfer/transfertype/blocks/EditDialog.tsx @@ -758,6 +758,7 @@ const EditDialog = () => { Top Up Top Up Patner Reward + Purchase Loja {errors.status_kind && ( diff --git a/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx b/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx index 1614b59..3f9c270 100644 --- a/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx +++ b/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx @@ -277,7 +277,8 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React W: { label: 'Withdraw', className: 'bg-fuchsia-100 text-fuchsia-600' }, U: { label: 'Top Up', className: 'bg-yellow-100 text-yellow-600' }, N: { label: 'Top Up Patner', className: 'bg-purple-100 text-purple-600' }, - E: {label: 'Reward', className: 'bg-rose-100 text-rose-600'} + E: {label: 'Reward', className: 'bg-rose-100 text-rose-600'}, + L: {label: 'Purchase Loja', className: 'bg-rose-100 text-rose-600'}, }; const kindInfo = mapping[kind] || { From 268e1af11c73be1c08227446f75bf5c658af3bc0 Mon Sep 17 00:00:00 2001 From: bagusajisaputroo Date: Sat, 17 May 2025 01:00:46 +0700 Subject: [PATCH 11/12] status kind filter on transfer type --- .../transfertype/blocks/ListToolBar.tsx | 49 ++++++++++++++++--- .../hooks/ManageTransferTypeContext.tsx | 6 ++- 2 files changed, 46 insertions(+), 9 deletions(-) diff --git a/src/pages/transfer/transfertype/blocks/ListToolBar.tsx b/src/pages/transfer/transfertype/blocks/ListToolBar.tsx index f1e90d5..e8ab157 100644 --- a/src/pages/transfer/transfertype/blocks/ListToolBar.tsx +++ b/src/pages/transfer/transfertype/blocks/ListToolBar.tsx @@ -52,7 +52,7 @@ const ListToolbar = () => { const { handleAddDialog } = useManageTransferTypeContext(); const [transferTypes, setTransferTypes] = useState([]); const { GetData } = useCallApi(); - + const [statusKind, setStatusKind] = useState(''); const [searchValue, setSearchValue] = useState(''); const [statusTypes, setStatusTypes] = useState(''); const [approval, setApproval] = useState(''); @@ -66,7 +66,7 @@ const ListToolbar = () => { table.setPageIndex(0); } }; - + useEffect(() => { const timer = setTimeout(() => { table.getColumn('name')?.setFilterValue(searchValue); @@ -83,6 +83,10 @@ const ListToolbar = () => { table.getColumn('status_approval')?.setFilterValue(approval); }, [approval, table]); + useEffect(() => { + table.getColumn('status_kind')?.setFilterValue(statusKind); + }, [statusKind, table]); + const fetchTransferTypes = async () => { try { const response = await GetData(`${API_URL}/transactiontype/list`, { @@ -106,7 +110,9 @@ const ListToolbar = () => { setSearchValue(''); setStatusTypes(''); setApproval(''); + setStatusKind(''); + table.getColumn('status_kind')?.setFilterValue(''); table.getColumn('name')?.setFilterValue(''); table.getColumn('type')?.setFilterValue(''); table.getColumn('status_approval')?.setFilterValue(''); @@ -122,7 +128,6 @@ const ListToolbar = () => {
- {/* Fixed Search Input dengan icon yang selalu terlihat */}
@@ -144,7 +149,10 @@ const ListToolbar = () => { onValueChange={setStatusTypes} > - + {types.map((opt) => ( @@ -163,7 +171,10 @@ const ListToolbar = () => { onValueChange={setApproval} > - + @@ -175,6 +186,31 @@ const ListToolbar = () => {
+
+ +
+
-
); }; -export default ListToolbar; \ No newline at end of file +export default ListToolbar; diff --git a/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx b/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx index 3f9c270..6628240 100644 --- a/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx +++ b/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx @@ -277,8 +277,8 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React W: { label: 'Withdraw', className: 'bg-fuchsia-100 text-fuchsia-600' }, U: { label: 'Top Up', className: 'bg-yellow-100 text-yellow-600' }, N: { label: 'Top Up Patner', className: 'bg-purple-100 text-purple-600' }, - E: {label: 'Reward', className: 'bg-rose-100 text-rose-600'}, - L: {label: 'Purchase Loja', className: 'bg-rose-100 text-rose-600'}, + E: { label: 'Reward', className: 'bg-rose-100 text-rose-600' }, + L: { label: 'Purchase Loja', className: 'bg-rose-100 text-rose-600' } }; const kindInfo = mapping[kind] || { @@ -369,6 +369,8 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React filterObject['wallet_origin.name'] = filter.value.toLowerCase(); } else if (filter.id === 'wallet_destination') { filterObject['wallet_destination.name'] = filter.value.toLowerCase(); + } else if (filter.id === 'status_kind') { + filterObject[filter.id] = filter.value; } else { filterObject[filter.id] = filter.value.toLowerCase(); } From 939aa638d7249af0469479c2931df4368c806120 Mon Sep 17 00:00:00 2001 From: bagusajisaputroo Date: Sat, 17 May 2025 01:19:42 +0700 Subject: [PATCH 12/12] fixing filter transfer type --- .../transfertype/hooks/ManageTransferTypeContext.tsx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx b/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx index 6628240..e2d121a 100644 --- a/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx +++ b/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx @@ -366,12 +366,17 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React if (filter.id === 'name') { filterObject['any'] = filter.value.toLowerCase(); } else if (filter.id === 'wallet_origin') { - filterObject['wallet_origin.name'] = filter.value.toLowerCase(); + filterObject['wallet_origin.name'] = filter; } else if (filter.id === 'wallet_destination') { - filterObject['wallet_destination.name'] = filter.value.toLowerCase(); + filterObject['wallet_destination.name'] = filter.value; } else if (filter.id === 'status_kind') { filterObject[filter.id] = filter.value; - } else { + } else if(filter.id === 'status_approval'){ + filterObject[filter.id] = filter.value; + } else if (filter.id === 'type') { + filterObject[filter.id] = filter.value; + } + else { filterObject[filter.id] = filter.value.toLowerCase(); } }