diff --git a/components/project/issues/BoardView/state/CreateUpdateStateModal.tsx b/components/project/issues/BoardView/state/CreateUpdateStateModal.tsx index 851ab9ee1..9f3b3951b 100644 --- a/components/project/issues/BoardView/state/CreateUpdateStateModal.tsx +++ b/components/project/issues/BoardView/state/CreateUpdateStateModal.tsx @@ -22,9 +22,9 @@ import { ChevronDownIcon } from "@heroicons/react/24/outline"; import type { IState } from "types"; type Props = { isOpen: boolean; - setIsOpen: React.Dispatch>; projectId: string; data?: IState; + handleClose: () => void; }; const defaultValues: Partial = { @@ -33,14 +33,9 @@ const defaultValues: Partial = { color: "#000000", }; -const CreateUpdateStateModal: React.FC = ({ - isOpen, - setIsOpen, - data, - projectId, -}) => { - const handleClose = () => { - setIsOpen(false); +const CreateUpdateStateModal: React.FC = ({ isOpen, data, projectId, handleClose }) => { + const onClose = () => { + handleClose(); const timeout = setTimeout(() => { reset(defaultValues); clearTimeout(timeout); @@ -70,12 +65,8 @@ const CreateUpdateStateModal: React.FC = ({ await stateService .createState(activeWorkspace.slug, projectId, payload) .then((res) => { - mutate( - STATE_LIST(projectId), - (prevData) => [...(prevData ?? []), res], - false - ); - handleClose(); + mutate(STATE_LIST(projectId), (prevData) => [...(prevData ?? []), res], false); + onClose(); }) .catch((err) => { Object.keys(err).map((key) => { @@ -101,7 +92,7 @@ const CreateUpdateStateModal: React.FC = ({ }, false ); - handleClose(); + onClose(); }) .catch((err) => { Object.keys(err).map((key) => { @@ -115,16 +106,15 @@ const CreateUpdateStateModal: React.FC = ({ useEffect(() => { if (data) { - setIsOpen(true); reset(data); } else { reset(defaultValues); } - }, [data, setIsOpen, reset]); + }, [data, reset]); return ( - + = ({
- + {data ? "Update" : "Create"} State
@@ -188,8 +175,7 @@ const CreateUpdateStateModal: React.FC = ({ )} @@ -214,14 +200,10 @@ const CreateUpdateStateModal: React.FC = ({ ( + render={({ field: { value, onChange } }) => ( - onChange(value.hex) - } + onChange={(value) => onChange(value.hex)} /> )} /> @@ -245,7 +227,7 @@ const CreateUpdateStateModal: React.FC = ({
-
)}
-
+
+
diff --git a/lib/services/user.service.ts b/lib/services/user.service.ts index 87a37c0e2..8266a617c 100644 --- a/lib/services/user.service.ts +++ b/lib/services/user.service.ts @@ -27,11 +27,13 @@ class UserService extends APIService { } async currentUser(): Promise { + if (!this.getAccessToken()) return null; return this.get(USER_ENDPOINT) .then((response) => { return response?.data; }) .catch((error) => { + this.purgeAccessToken(); throw error?.response?.data; }); } diff --git a/pages/projects/[projectId]/settings.tsx b/pages/projects/[projectId]/settings.tsx index 3d372b381..6f72d095d 100644 --- a/pages/projects/[projectId]/settings.tsx +++ b/pages/projects/[projectId]/settings.tsx @@ -28,9 +28,14 @@ import CreateUpdateStateModal from "components/project/issues/BoardView/state/Cr import { Spinner, Button, Input, TextArea, Select } from "ui"; import { Breadcrumbs, BreadcrumbItem } from "ui/Breadcrumbs"; // icons -import { ChevronDownIcon, CheckIcon, PlusIcon } from "@heroicons/react/24/outline"; +import { + ChevronDownIcon, + CheckIcon, + PlusIcon, + PencilSquareIcon, +} from "@heroicons/react/24/outline"; // types -import type { IProject, IWorkspace, WorkspaceMember } from "types"; +import type { IProject, IState, IWorkspace, WorkspaceMember } from "types"; const defaultValues: Partial = { name: "", @@ -52,6 +57,7 @@ const ProjectSettings: NextPage = () => { }); const [isCreateStateModalOpen, setIsCreateStateModalOpen] = useState(false); + const [selectedState, setSelectedState] = useState(); const router = useRouter(); @@ -135,9 +141,13 @@ const ProjectSettings: NextPage = () => {
{ + setSelectedState(undefined); + setIsCreateStateModalOpen(false); + }} projectId={projectId as string} + data={selectedState ? states?.find((state) => state.id === selectedState) : undefined} /> @@ -404,16 +414,23 @@ const ProjectSettings: NextPage = () => {
{states?.map((state) => (
-
-

{addSpaceIfCamelCase(state.name)}

+
+
+

{addSpaceIfCamelCase(state.name)}

+
+
+ +
))} { + setIsGoogleAuthenticationLoading(true); authenticationService .socialAuth({ medium: "google", @@ -140,6 +149,7 @@ const SignIn: NextPage = () => { }) .catch((err) => { console.log(err); + setIsGoogleAuthenticationLoading(false); }); }} onFailure={(err) => {