fix: editing collections should not forward to collection on save (#3187)

This commit is contained in:
Saumya Pandey
2022-03-01 12:22:29 +05:30
committed by GitHub
parent eb7f8a8da0
commit 3115152dfd
3 changed files with 10 additions and 8 deletions

View File

@@ -50,14 +50,14 @@ function CollectionScene() {
const can = usePolicy(collection?.id || "");
React.useEffect(() => {
if (collection) {
if (collection?.name) {
const canonicalUrl = updateCollectionUrl(match.url, collection);
if (match.url !== canonicalUrl) {
history.replace(canonicalUrl);
}
}
}, [collection, history, id, match.url]);
}, [collection, collection?.name, history, id, match.url]);
React.useEffect(() => {
if (collection) {

View File

@@ -7,6 +7,7 @@ import Button from "~/components/Button";
import Flex from "~/components/Flex";
import Text from "~/components/Text";
import useCurrentTeam from "~/hooks/useCurrentTeam";
import useStores from "~/hooks/useStores";
import useToasts from "~/hooks/useToasts";
import { homePath } from "~/utils/routeHelpers";
@@ -19,6 +20,7 @@ function CollectionDelete({ collection, onSubmit }: Props) {
const [isDeleting, setIsDeleting] = React.useState(false);
const team = useCurrentTeam();
const { showToast } = useToasts();
const { ui } = useStores();
const history = useHistory();
const { t } = useTranslation();
const handleSubmit = React.useCallback(
@@ -27,9 +29,12 @@ function CollectionDelete({ collection, onSubmit }: Props) {
setIsDeleting(true);
try {
const redirect = collection.id === ui.activeCollectionId;
await collection.delete();
onSubmit();
history.push(homePath());
if (redirect) {
history.push(homePath());
}
} catch (err) {
showToast(err.message, {
type: "error",
@@ -38,7 +43,7 @@ function CollectionDelete({ collection, onSubmit }: Props) {
setIsDeleting(false);
}
},
[collection, history, onSubmit, showToast]
[collection, history, onSubmit, showToast, ui.activeCollectionId]
);
return (

View File

@@ -3,7 +3,6 @@ import { observer } from "mobx-react";
import { useState } from "react";
import * as React from "react";
import { Trans, useTranslation } from "react-i18next";
import { useHistory } from "react-router-dom";
import Button from "~/components/Button";
import Flex from "~/components/Flex";
import IconPicker from "~/components/IconPicker";
@@ -29,7 +28,6 @@ const CollectionEdit = ({ collectionId, onSubmit }: Props) => {
field: string;
direction: "asc" | "desc";
}>(collection.sort);
const history = useHistory();
const [isSaving, setIsSaving] = useState(false);
const { showToast } = useToasts();
const { t } = useTranslation();
@@ -46,7 +44,6 @@ const CollectionEdit = ({ collectionId, onSubmit }: Props) => {
color,
sort,
});
history.push(collection.url);
onSubmit();
showToast(t("The collection was updated"), {
type: "success",
@@ -59,7 +56,7 @@ const CollectionEdit = ({ collectionId, onSubmit }: Props) => {
setIsSaving(false);
}
},
[collection, history, color, icon, name, onSubmit, showToast, sort, t]
[collection, color, icon, name, onSubmit, showToast, sort, t]
);
const handleSortChange = (value: string) => {