global update and global fix
This commit is contained in:
@@ -7,11 +7,11 @@ const SELECTED_FAMILY_STORAGE_KEY = 'id-selected-family-group-id';
|
||||
type FamilyOverlayContextValue = {
|
||||
openMiniChat: () => void;
|
||||
openChatRoom: (roomId: string) => void;
|
||||
openChatWithMember: (memberUserId: string, memberName: string) => void;
|
||||
openChatWithMember: (memberUserId: string, memberName: string, options?: { isBot?: boolean; botUsername?: string }) => void;
|
||||
closeMiniChat: () => void;
|
||||
miniChatOpen: boolean;
|
||||
pendingRoomId: string | null;
|
||||
pendingMember: { userId: string; name: string } | null;
|
||||
pendingMember: { userId: string; name: string; isBot?: boolean; botUsername?: string } | null;
|
||||
clearPending: () => void;
|
||||
selectedGroupId: string | null;
|
||||
setSelectedGroupId: (groupId: string | null) => void;
|
||||
@@ -22,9 +22,9 @@ const FamilyOverlayContext = createContext<FamilyOverlayContextValue | null>(nul
|
||||
export function FamilyOverlayProvider({ children }: { children: React.ReactNode }) {
|
||||
const [miniChatOpen, setMiniChatOpen] = useState(false);
|
||||
const [pendingRoomId, setPendingRoomId] = useState<string | null>(null);
|
||||
const [pendingMember, setPendingMember] = useState<{ userId: string; name: string } | null>(null);
|
||||
const [pendingMember, setPendingMember] = useState<{ userId: string; name: string; isBot?: boolean; botUsername?: string } | null>(null);
|
||||
const [selectedGroupId, setSelectedGroupIdState] = useState<string | null>(null);
|
||||
const pendingMemberRef = useRef<{ userId: string; name: string } | null>(null);
|
||||
const pendingMemberRef = useRef<{ userId: string; name: string; isBot?: boolean; botUsername?: string } | null>(null);
|
||||
const selectionHydratedRef = useRef(false);
|
||||
|
||||
useEffect(() => {
|
||||
@@ -58,13 +58,16 @@ export function FamilyOverlayProvider({ children }: { children: React.ReactNode
|
||||
setMiniChatOpen(true);
|
||||
}, []);
|
||||
|
||||
const openChatWithMember = useCallback((memberUserId: string, memberName: string) => {
|
||||
const payload = { userId: memberUserId, name: memberName };
|
||||
setPendingMember(payload);
|
||||
pendingMemberRef.current = payload;
|
||||
setPendingRoomId(null);
|
||||
setMiniChatOpen(true);
|
||||
}, []);
|
||||
const openChatWithMember = useCallback(
|
||||
(memberUserId: string, memberName: string, options?: { isBot?: boolean; botUsername?: string }) => {
|
||||
const payload = { userId: memberUserId, name: memberName, ...options };
|
||||
setPendingMember(payload);
|
||||
pendingMemberRef.current = payload;
|
||||
setPendingRoomId(null);
|
||||
setMiniChatOpen(true);
|
||||
},
|
||||
[]
|
||||
);
|
||||
|
||||
const clearPending = useCallback(() => {
|
||||
setPendingRoomId(null);
|
||||
|
||||
Reference in New Issue
Block a user