Bugfix/amend schedule reload (#2254)

* Invalidate onSuccess delete instead of reload

* Added schedule name to availability update + fix update invalidation

Co-authored-by: Omar López <zomars@me.com>
This commit is contained in:
Alex van Andel 2022-03-23 23:23:18 +00:00 committed by GitHub
parent f536d1040c
commit e1964553c4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 9 deletions

View file

@ -5,6 +5,7 @@ import { Controller, useForm } from "react-hook-form";
import TimezoneSelect from "react-timezone-select";
import { DEFAULT_SCHEDULE, availabilityAsString } from "@calcom/lib/availability";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import showToast from "@calcom/lib/notification";
import Button from "@calcom/ui/Button";
import Switch from "@calcom/ui/Switch";
@ -12,7 +13,6 @@ import { Form } from "@calcom/ui/form/fields";
import { QueryCell } from "@lib/QueryCell";
import { HttpError } from "@lib/core/http/error";
import { useLocale } from "@lib/hooks/useLocale";
import { inferQueryOutput, trpc } from "@lib/trpc";
import Shell from "@components/Shell";
@ -22,6 +22,7 @@ import EditableHeading from "@components/ui/EditableHeading";
export function AvailabilityForm(props: inferQueryOutput<"viewer.availability.schedule">) {
const { t } = useLocale();
const router = useRouter();
const utils = trpc.useContext();
const form = useForm({
defaultValues: {
@ -32,10 +33,15 @@ export function AvailabilityForm(props: inferQueryOutput<"viewer.availability.sc
});
const updateMutation = trpc.useMutation("viewer.availability.schedule.update", {
onSuccess: async () => {
onSuccess: async ({ schedule }) => {
await utils.invalidateQueries(["viewer.availability.schedule"]);
await router.push("/availability");
window.location.reload();
showToast(t("availability_updated_successfully"), "success");
showToast(
t("availability_updated_successfully", {
scheduleName: schedule.name,
}),
"success"
);
},
onError: (err) => {
if (err instanceof HttpError) {
@ -137,10 +143,10 @@ export default function Availability() {
<Shell
heading={<EditableHeading title={data.schedule.name} onChange={setName} />}
subtitle={data.schedule.availability.map((availability) => (
<>
<span key={availability.id}>
{availabilityAsString(availability, i18n.language)}
<br />
</>
</span>
))}>
<AvailabilityForm
{...{ ...data, schedule: { ...data.schedule, name: name || data.schedule.name } }}

View file

@ -19,10 +19,11 @@ import { NewScheduleButton } from "@components/availability/NewScheduleButton";
export function AvailabilityList({ schedules }: inferQueryOutput<"viewer.availability.list">) {
const { t, i18n } = useLocale();
const utils = trpc.useContext();
const deleteMutation = trpc.useMutation("viewer.availability.schedule.delete", {
onSuccess: async () => {
await utils.invalidateQueries(["viewer.availability.list"]);
showToast(t("schedule_deleted_successfully"), "success");
window.location.reload();
},
onError: (err) => {
if (err instanceof HttpError) {

View file

@ -547,7 +547,6 @@
"billing": "Billing",
"manage_your_billing_info": "Manage your billing information and cancel your subscription.",
"availability": "Availability",
"availability_updated_successfully": "Availability updated successfully",
"configure_availability": "Configure times when you are available for bookings.",
"change_weekly_schedule": "Change your weekly schedule",
"logo": "Logo",
@ -698,6 +697,7 @@
"add_new_schedule": "Add a new schedule",
"delete_schedule": "Delete schedule",
"schedule_created_successfully": "{{scheduleName}} schedule created successfully",
"availability_updated_successfully": "{{scheduleName}} schedule updated successfully",
"schedule_deleted_successfully": "Schedule deleted successfully",
"default_schedule_name": "Working Hours",
"new_schedule_heading": "Create an availability schedule",

View file

@ -191,7 +191,7 @@ export const availabilityRouter = createProtectedRouter()
});
}
await prisma.schedule.update({
const schedule = await prisma.schedule.update({
where: {
id: input.scheduleId,
},
@ -214,5 +214,9 @@ export const availabilityRouter = createProtectedRouter()
},
},
});
return {
schedule,
};
},
});