forked from trent_larson/crowd-funder-for-time-pwa
feat: implement member visibility dialog with checkbox selection and refresh
- Add "Set Visibility" dialog for meeting members who need visibility settings - Filter members to show only those not in contacts or without seesMe set - Implement checkbox selection with "Select All" functionality - Add reactive checkbox behavior with proper state management - Default all checkboxes to checked when dialog opens - Implement "Set Visibility" action to add contacts and set seesMe property - Add success notifications with count of affected members - Disable "Set Visibility" button when no members are selected - Use notification callbacks for data refresh - Hide "Set Visibility" buttons when no members need visibility settings - Add proper dialog state management and cleanup - Ensure dialog closes before triggering data refresh to prevent stale states The implementation provides a smooth user experience for managing member visibility settings with proper state synchronization between components.
This commit is contained in:
@@ -59,7 +59,7 @@ export const PASSKEYS_ENABLED =
|
||||
export interface NotificationIface {
|
||||
group: string; // "alert" | "modal"
|
||||
type: string; // "toast" | "info" | "success" | "warning" | "danger"
|
||||
title: string;
|
||||
title?: string;
|
||||
text?: string;
|
||||
callback?: (success: boolean) => Promise<void>; // if this triggered an action
|
||||
noText?: string;
|
||||
@@ -68,4 +68,11 @@ export interface NotificationIface {
|
||||
onYes?: () => Promise<void>;
|
||||
promptToStopAsking?: boolean;
|
||||
yesText?: string;
|
||||
membersData?: Array<{
|
||||
member: { admitted: boolean; content: string; memberId: number };
|
||||
name: string;
|
||||
did: string;
|
||||
isContact: boolean;
|
||||
contact?: { did: string; name?: string; seesMe?: boolean };
|
||||
}>; // For passing member data to visibility dialog
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user