add errors for duplicate labels (#2706)

Co-authored-by: rahulramesha <rahul@appsmith.com>
This commit is contained in:
rahulramesha 2023-11-07 18:22:52 +05:30 committed by GitHub
parent 8d3853b129
commit b56d188a83
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 46 additions and 5 deletions

View File

@ -18,6 +18,7 @@ import { Plus, X } from "lucide-react";
import { IIssue, IIssueLabels } from "types";
// fetch-keys
import { PROJECT_ISSUE_LABELS } from "constants/fetch-keys";
import useToast from "hooks/use-toast";
type Props = {
issueDetails: IIssue | undefined;
@ -44,6 +45,9 @@ export const SidebarLabelSelect: React.FC<Props> = ({
const [createLabelForm, setCreateLabelForm] = useState(false);
const router = useRouter();
const { setToastAlert } = useToast();
const { workspaceSlug, projectId } = router.query;
const {
@ -79,6 +83,14 @@ export const SidebarLabelSelect: React.FC<Props> = ({
submitChanges({ labels: [...(issueDetails?.labels ?? []), res.id] });
setCreateLabelForm(false);
})
.catch((error) => {
setToastAlert({
title: "Oops!",
type: "error",
message: error?.error ?? "Error while adding the label",
});
reset(formData);
});
};

View File

@ -15,6 +15,7 @@ import { ChevronDown } from "lucide-react";
import type { IIssueLabels, IState } from "types";
// constants
import { LABEL_COLOR_OPTIONS, getRandomLabelColor } from "constants/label";
import useToast from "hooks/use-toast";
// types
type Props = {
@ -58,6 +59,8 @@ export const CreateLabelModal: React.FC<Props> = observer((props) => {
reset(defaultValues);
};
const { setToastAlert } = useToast();
const onSubmit = async (formData: IIssueLabels) => {
if (!workspaceSlug) return;
@ -68,7 +71,12 @@ export const CreateLabelModal: React.FC<Props> = observer((props) => {
if (onSuccess) onSuccess(res);
})
.catch((error) => {
console.log(error);
setToastAlert({
title: "Oops!",
type: "error",
message: error?.error ?? "Error while adding the label",
});
reset(formData);
});
};

View File

@ -14,6 +14,7 @@ import { Button, Input } from "@plane/ui";
import { IIssueLabels } from "types";
// fetch-keys
import { getRandomLabelColor, LABEL_COLOR_OPTIONS } from "constants/label";
import useToast from "hooks/use-toast";
type Props = {
labelForm: boolean;
@ -39,6 +40,8 @@ export const CreateUpdateLabelInline = observer(
// store
const { projectLabel: projectLabelStore } = useMobxStore();
const { setToastAlert } = useToast();
const {
handleSubmit,
control,
@ -60,10 +63,20 @@ export const CreateUpdateLabelInline = observer(
const handleLabelCreate: SubmitHandler<IIssueLabels> = async (formData) => {
if (!workspaceSlug || !projectId || isSubmitting) return;
await projectLabelStore.createLabel(workspaceSlug.toString(), projectId.toString(), formData).then(() => {
handleClose();
reset(defaultValues);
});
await projectLabelStore
.createLabel(workspaceSlug.toString(), projectId.toString(), formData)
.then(() => {
handleClose();
reset(defaultValues);
})
.catch((error) => {
setToastAlert({
title: "Oops!",
type: "error",
message: error?.error ?? "Error while adding the label",
});
reset(formData);
});
};
const handleLabelUpdate: SubmitHandler<IIssueLabels> = async (formData) => {
@ -74,6 +87,14 @@ export const CreateUpdateLabelInline = observer(
.then(() => {
reset(defaultValues);
handleClose();
})
.catch((error) => {
setToastAlert({
title: "Oops!",
type: "error",
message: error?.error ?? "Error while updating the label",
});
reset(formData);
});
};