Refactor two modals (#861)
* refactor one modal into dialog. save profile
This commit is contained in:
parent
4b05c56a0d
commit
0871f5edf8
1 changed files with 25 additions and 22 deletions
|
@ -1,3 +1,4 @@
|
|||
import { InformationCircleIcon } from "@heroicons/react/outline";
|
||||
import crypto from "crypto";
|
||||
import { GetServerSidePropsContext } from "next";
|
||||
import { serverSideTranslations } from "next-i18next/serverSideTranslations";
|
||||
|
@ -14,12 +15,13 @@ import {
|
|||
OptionType,
|
||||
} from "@lib/core/i18n/i18n.utils";
|
||||
import { isBrandingHidden } from "@lib/isBrandingHidden";
|
||||
import showToast from "@lib/notification";
|
||||
import prisma from "@lib/prisma";
|
||||
import { trpc } from "@lib/trpc";
|
||||
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
||||
|
||||
import { DialogClose, Dialog, DialogContent } from "@components/Dialog";
|
||||
import ImageUploader from "@components/ImageUploader";
|
||||
import Modal from "@components/Modal";
|
||||
import SettingsShell from "@components/SettingsShell";
|
||||
import Shell from "@components/Shell";
|
||||
import { Alert } from "@components/ui/Alert";
|
||||
|
@ -62,11 +64,18 @@ function HideBrandingInput(props: {
|
|||
setModalOpen(true);
|
||||
}}
|
||||
/>
|
||||
|
||||
<Modal
|
||||
heading="This feature is only available in paid plan"
|
||||
variant="warning"
|
||||
description={
|
||||
<Dialog open={modelOpen}>
|
||||
<DialogContent>
|
||||
<div className="mx-auto flex items-center justify-center h-12 w-12 rounded-full bg-yellow-100 mb-4">
|
||||
<InformationCircleIcon className="h-6 w-6 text-yellow-400" aria-hidden="true" />
|
||||
</div>
|
||||
<div className="sm:flex sm:items-start mb-4">
|
||||
<div className="mt-3 sm:mt-0 sm:text-left">
|
||||
<h3 className="font-cal text-lg leading-6 font-bold text-gray-900" id="modal-title">
|
||||
This feature is only available in paid plan
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex flex-col space-y-3">
|
||||
<p>
|
||||
In order to remove the Cal branding from your booking pages, you need to upgrade to a paid
|
||||
|
@ -82,10 +91,15 @@ function HideBrandingInput(props: {
|
|||
.
|
||||
</p>
|
||||
</div>
|
||||
}
|
||||
open={modelOpen}
|
||||
handleClose={() => setModalOpen(false)}
|
||||
/>
|
||||
<div className="mt-5 sm:mt-4 sm:flex sm:flex-row-reverse gap-x-2">
|
||||
<DialogClose asChild>
|
||||
<Button className="btn-wide btn-primary text-center" onClick={() => setModalOpen(false)}>
|
||||
<span className="m-auto">Dismiss</span>
|
||||
</Button>
|
||||
</DialogClose>
|
||||
</div>
|
||||
</DialogContent>
|
||||
</Dialog>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
@ -93,7 +107,6 @@ function HideBrandingInput(props: {
|
|||
export default function Settings(props: Props) {
|
||||
const mutation = trpc.useMutation("viewer.updateProfile");
|
||||
|
||||
const [successModalOpen, setSuccessModalOpen] = useState(false);
|
||||
const usernameRef = useRef<HTMLInputElement>(null);
|
||||
const nameRef = useRef<HTMLInputElement>(null);
|
||||
const descriptionRef = useRef<HTMLTextAreaElement>();
|
||||
|
@ -123,10 +136,6 @@ export default function Settings(props: Props) {
|
|||
setSelectedLanguage({ value: props.localeProp, label: props.localeLabels[props.localeProp] });
|
||||
}, []);
|
||||
|
||||
const closeSuccessModal = () => {
|
||||
setSuccessModalOpen(false);
|
||||
};
|
||||
|
||||
const handleAvatarChange = (newAvatar) => {
|
||||
avatarRef.current.value = newAvatar;
|
||||
const nativeInputValueSetter = Object.getOwnPropertyDescriptor(
|
||||
|
@ -167,7 +176,7 @@ export default function Settings(props: Props) {
|
|||
locale: enteredLanguage,
|
||||
})
|
||||
.then(() => {
|
||||
setSuccessModalOpen(true);
|
||||
showToast("Your user profile has been updated successfully", "success");
|
||||
setHasErrors(false); // dismiss any open errors
|
||||
})
|
||||
.catch((err) => {
|
||||
|
@ -411,12 +420,6 @@ export default function Settings(props: Props) {
|
|||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<Modal
|
||||
heading="Profile updated successfully"
|
||||
description="Your user profile has been updated successfully."
|
||||
open={successModalOpen}
|
||||
handleClose={closeSuccessModal}
|
||||
/>
|
||||
</SettingsShell>
|
||||
</Shell>
|
||||
);
|
||||
|
|
Loading…
Reference in a new issue