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 layout, 22 ResponsiveDropdownMenuContent, 23 Text, 24 View, 25 } from "../ui"; 26 ··· 210 }) { 211 const [confirming, setConfirming] = useState<DeleteState>(DeleteState.None); 212 const { onOpenChange } = useRootContext(); 213 return ( 214 <DropdownMenuItem 215 onPress={() => { ··· 221 if (confirming === DeleteState.Confirmed) { 222 setConfirming(DeleteState.Deleting); 223 } 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 - }); 229 }} 230 > 231 <Text color="destructive">
··· 21 layout, 22 ResponsiveDropdownMenuContent, 23 Text, 24 + useToast, 25 View, 26 } from "../ui"; 27 ··· 211 }) { 212 const [confirming, setConfirming] = useState<DeleteState>(DeleteState.None); 213 const { onOpenChange } = useRootContext(); 214 + const toast = useToast(); 215 return ( 216 <DropdownMenuItem 217 onPress={() => { ··· 223 if (confirming === DeleteState.Confirmed) { 224 setConfirming(DeleteState.Deleting); 225 } 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 + }); 236 }} 237 > 238 <Text color="destructive">
+6 -6
js/components/src/livestream-store/chat.tsx
··· 135 136 export const useDeleteChatMessage = () => { 137 const pdsAgent = usePDSAgent(); 138 - if (!pdsAgent) { 139 - throw new Error("No PDS agent found"); 140 - } 141 const userDID = useDID(); 142 - if (!userDID) { 143 - throw new Error("No user DID found"); 144 - } 145 return async (uri: string) => { 146 const rkey = uri.split("/").pop(); 147 if (!rkey) { 148 throw new Error("No rkey found");
··· 135 136 export const useDeleteChatMessage = () => { 137 const pdsAgent = usePDSAgent(); 138 const userDID = useDID(); 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 const rkey = uri.split("/").pop(); 147 if (!rkey) { 148 throw new Error("No rkey found");