pl-fe: use correct call for pending account rejection

Signed-off-by: mkljczk <git@mkljczk.pl>
This commit is contained in:
mkljczk
2025-02-25 01:56:50 +01:00
parent 5be4f9525c
commit 9335c642c8
3 changed files with 30 additions and 7 deletions

View File

@ -25,6 +25,9 @@ const ADMIN_USER_DELETE_SUCCESS = 'ADMIN_USER_DELETE_SUCCESS' as const;
const ADMIN_USER_APPROVE_REQUEST = 'ADMIN_USER_APPROVE_REQUEST' as const;
const ADMIN_USER_APPROVE_SUCCESS = 'ADMIN_USER_APPROVE_SUCCESS' as const;
const ADMIN_USER_REJECT_REQUEST = 'ADMIN_USER_REJECT_REQUEST' as const;
const ADMIN_USER_REJECT_SUCCESS = 'ADMIN_USER_REJECT_SUCCESS' as const;
const ADMIN_USER_INDEX_EXPAND_FAIL = 'ADMIN_USER_INDEX_EXPAND_FAIL' as const;
const ADMIN_USER_INDEX_EXPAND_REQUEST = 'ADMIN_USER_INDEX_EXPAND_REQUEST' as const;
const ADMIN_USER_INDEX_EXPAND_SUCCESS = 'ADMIN_USER_INDEX_EXPAND_SUCCESS' as const;
@ -107,7 +110,22 @@ const approveUser = (accountId: string) =>
dispatch<AdminActions>({ type: ADMIN_USER_APPROVE_REQUEST, accountId });
return getClient(state).admin.accounts.approveAccount(accountId);
return getClient(state).admin.accounts.approveAccount(accountId).then((user) => {
dispatch<AdminActions>({ type: ADMIN_USER_APPROVE_SUCCESS, user, accountId });
return user;
});
};
const rejectUser = (accountId: string) =>
(dispatch: AppDispatch, getState: () => RootState) => {
const state = getState();
dispatch<AdminActions>({ type: ADMIN_USER_REJECT_REQUEST, accountId });
return getClient(state).admin.accounts.rejectAccount(accountId).then(() => {
dispatch<AdminActions>({ type: ADMIN_USER_REJECT_SUCCESS, accountId });
});
};
const deleteStatus = (statusId: string) =>
@ -227,6 +245,8 @@ type AdminActions =
| { type: typeof ADMIN_USER_DELETE_SUCCESS; accountId: string }
| { type: typeof ADMIN_USER_APPROVE_REQUEST; accountId: string }
| { type: typeof ADMIN_USER_APPROVE_SUCCESS; user: AdminAccount; accountId: string }
| { type: typeof ADMIN_USER_REJECT_REQUEST; accountId: string }
| { type: typeof ADMIN_USER_REJECT_SUCCESS; accountId: string }
| ReturnType<typeof setUserIndexQuery>
| { type: typeof ADMIN_USER_INDEX_FETCH_REQUEST }
| { type: typeof ADMIN_USER_INDEX_FETCH_SUCCESS; users: Array<AdminAccount>; total?: number; next: (() => Promise<PaginatedResponse<AdminAccount>>) | null; params?: AdminGetAccountsParams }
@ -245,6 +265,8 @@ export {
ADMIN_USER_DELETE_SUCCESS,
ADMIN_USER_APPROVE_REQUEST,
ADMIN_USER_APPROVE_SUCCESS,
ADMIN_USER_REJECT_REQUEST,
ADMIN_USER_REJECT_SUCCESS,
ADMIN_USER_INDEX_EXPAND_FAIL,
ADMIN_USER_INDEX_EXPAND_REQUEST,
ADMIN_USER_INDEX_EXPAND_SUCCESS,
@ -261,6 +283,7 @@ export {
deactivateUser,
deleteUser,
approveUser,
rejectUser,
deleteStatus,
toggleStatusSensitivity,
setBadges,

View File

@ -1,6 +1,6 @@
import React from 'react';
import { approveUser, deleteUser } from 'pl-fe/actions/admin';
import { approveUser, rejectUser } from 'pl-fe/actions/admin';
import { useAccount } from 'pl-fe/api/hooks/accounts/use-account';
import { AuthorizeRejectButtons } from 'pl-fe/components/authorize-reject-buttons';
import HStack from 'pl-fe/components/ui/hstack';
@ -23,7 +23,7 @@ const UnapprovedAccount: React.FC<IUnapprovedAccount> = ({ accountId }) => {
if (!account) return null;
const handleApprove = () => dispatch(approveUser(account.id));
const handleReject = () => dispatch(deleteUser(account.id));
const handleReject = () => dispatch(rejectUser(account.id));
return (
<HStack space={4} justifyContent='between'>

View File

@ -8,8 +8,8 @@ import {
ADMIN_REPORT_PATCH_SUCCESS,
ADMIN_USERS_FETCH_SUCCESS,
ADMIN_USER_DELETE_SUCCESS,
ADMIN_USER_APPROVE_REQUEST,
ADMIN_USER_APPROVE_SUCCESS,
ADMIN_USER_REJECT_SUCCESS,
type AdminActions,
} from 'pl-fe/actions/admin';
import { normalizeAdminReport, type AdminReport as MinifiedReport } from 'pl-fe/normalizers/admin-report';
@ -119,12 +119,12 @@ const admin = (state = initialState, action: AdminActions): State => {
return create(state, (draft) => importUsers(draft, action.users, action.params));
case ADMIN_USER_DELETE_SUCCESS:
return create(state, (draft) => deleteUser(draft, action.accountId));
case ADMIN_USER_APPROVE_REQUEST:
case ADMIN_USER_APPROVE_SUCCESS:
return create(state, (draft) => approveUser(draft, action.user));
case ADMIN_USER_REJECT_SUCCESS:
return create(state, (draft) => {
draft.awaitingApproval = draft.awaitingApproval.filter(value => value !== action.accountId);
});
case ADMIN_USER_APPROVE_SUCCESS:
return create(state, (draft) => approveUser(draft, action.user));
default:
return state;
}