Implement collaboration wallets, withdrawals, and app UI flows

This commit is contained in:
dwindown
2026-02-03 16:03:11 +07:00
parent 8e64780f72
commit 52b16dce07
16 changed files with 3039 additions and 28 deletions

View File

@@ -155,19 +155,24 @@ export default function AdminMembers() {
// Step 5: Delete video_progress
await supabase.from("video_progress").delete().eq("user_id", userId);
// Step 6: Delete consulting_slots
// Step 6: Delete collaboration withdrawals + wallet records
await supabase.from("withdrawals").delete().eq("user_id", userId);
await supabase.from("wallet_transactions").delete().eq("user_id", userId);
await supabase.from("collaborator_wallets").delete().eq("user_id", userId);
// Step 7: Delete consulting_slots
await supabase.from("consulting_slots").delete().eq("user_id", userId);
// Step 7: Delete calendar_events
// Step 8: Delete calendar_events
await supabase.from("calendar_events").delete().eq("user_id", userId);
// Step 8: Delete user_roles
// Step 9: Delete user_roles
await supabase.from("user_roles").delete().eq("user_id", userId);
// Step 9: Delete profile
// Step 10: Delete profile
await supabase.from("profiles").delete().eq("id", userId);
// Step 10: Delete from auth.users using edge function
// Step 11: Delete from auth.users using edge function
const { error: deleteError } = await supabase.functions.invoke('delete-user', {
body: { user_id: userId }
});
@@ -185,11 +190,12 @@ export default function AdminMembers() {
setDeleteDialogOpen(false);
setMemberToDelete(null);
fetchMembers();
} catch (error: any) {
} catch (error: unknown) {
const message = error instanceof Error ? error.message : "Gagal menghapus member";
console.error('Delete member error:', error);
toast({
title: "Error",
description: error.message || "Gagal menghapus member",
description: message,
variant: "destructive"
});
} finally {