Ask for confirmation when unsubscribing

This commit is contained in:
Jackson Harper 2022-08-08 12:57:37 +08:00
parent f6df97c85d
commit 2416efadb2

View file

@ -616,8 +616,11 @@ function HomeFeedGrid(props: HomeFeedContentProps): JSX.Element {
})
const [showRemoveLinkConfirmation, setShowRemoveLinkConfirmation] =
useState(false)
const [showUnsubscribeConfirmation, setShowUnsubscribeConfirmation] =
useState(false)
const [linkToRemove, setLinkToRemove] = useState<LibraryItem>()
const [linkToEdit, setLinkToEdit] = useState<LibraryItem>()
const [linkToUnsubscribe, setLinkToUnsubscribe] = useState<LibraryItem>()
const updateLayout = useCallback(
async (newLayout: LayoutType) => {
@ -655,6 +658,15 @@ function HomeFeedGrid(props: HomeFeedContentProps): JSX.Element {
setShowRemoveLinkConfirmation(false)
}
const unsubscribe = () => {
if (!linkToUnsubscribe) {
return
}
props.actionHandler('unsubscribe', linkToUnsubscribe)
setLinkToUnsubscribe(undefined)
setShowUnsubscribeConfirmation(false)
}
return (
<>
<VStack
@ -839,6 +851,9 @@ function HomeFeedGrid(props: HomeFeedContentProps): JSX.Element {
} else if (action === 'editTitle') {
props.setShowEditTitleModal(true)
setLinkToEdit(linkedItem)
} else if (action == 'unsubscribe') {
setShowUnsubscribeConfirmation(true)
setLinkToUnsubscribe(linkedItem)
} else {
props.actionHandler(action, linkedItem)
}
@ -944,6 +959,13 @@ function HomeFeedGrid(props: HomeFeedContentProps): JSX.Element {
onOpenChange={() => setShowRemoveLinkConfirmation(false)}
/>
)}
{showUnsubscribeConfirmation && (
<ConfirmationModal
message={'Are you sure you want to unsubscribe?'}
onAccept={unsubscribe}
onOpenChange={() => setShowUnsubscribeConfirmation(false)}
/>
)}
{props.labelsTarget?.node.id && (
<SetLabelsModal
linkId={props.labelsTarget.node.id}