Live video on the AT Protocol

fix: crash when loading deleteChatMessage when not logged in

+18 -11
+12 -5
js/components/src/components/chat/mod-view.tsx
··· 21 21 layout, 22 22 ResponsiveDropdownMenuContent, 23 23 Text, 24 + useToast, 24 25 View, 25 26 } from "../ui"; 26 27 ··· 210 211 }) { 211 212 const [confirming, setConfirming] = useState<DeleteState>(DeleteState.None); 212 213 const { onOpenChange } = useRootContext(); 214 + const toast = useToast(); 213 215 return ( 214 216 <DropdownMenuItem 215 217 onPress={() => { ··· 221 223 if (confirming === DeleteState.Confirmed) { 222 224 setConfirming(DeleteState.Deleting); 223 225 } 224 - deleteChatMessage(message.uri).then(() => { 225 - // wait ~a second before resetting state to allow deletion to take effect 226 - setTimeout(() => setConfirming(DeleteState.None), 1000); 227 - onOpenChange?.(false); 228 - }); 226 + deleteChatMessage(message.uri) 227 + .then(() => { 228 + // wait ~a second before resetting state to allow deletion to take effect 229 + setTimeout(() => setConfirming(DeleteState.None), 1000); 230 + onOpenChange?.(false); 231 + }) 232 + .catch((e) => { 233 + toast.show("Couldn't delete the message", e); 234 + setConfirming(DeleteState.None); 235 + }); 229 236 }} 230 237 > 231 238 <Text color="destructive">
+6 -6
js/components/src/livestream-store/chat.tsx
··· 135 135 136 136 export const useDeleteChatMessage = () => { 137 137 const pdsAgent = usePDSAgent(); 138 - if (!pdsAgent) { 139 - throw new Error("No PDS agent found"); 140 - } 141 138 const userDID = useDID(); 142 - if (!userDID) { 143 - throw new Error("No user DID found"); 144 - } 145 139 return async (uri: string) => { 140 + if (!pdsAgent) { 141 + throw new Error("No PDS agent found"); 142 + } 143 + if (!userDID) { 144 + throw new Error("No user DID found"); 145 + } 146 146 const rkey = uri.split("/").pop(); 147 147 if (!rkey) { 148 148 throw new Error("No rkey found");