From 8cd9285cc6a0ca3df0692fd67b84bcbb0aa931cd Mon Sep 17 00:00:00 2001 From: Amit Sharma <74371312+Amit91848@users.noreply.github.com> Date: Wed, 3 Jul 2024 15:23:22 +0530 Subject: [PATCH] fix: Remove/Disable Duplicate button in Read Only mode of an event-type (#15511) * fix: Remove/Disable Duplicate button in Read Only mode of an event-type * fix: use readonly variable * fix: hiding for smaller devices * update test cases --------- Co-authored-by: Keith Williams Co-authored-by: unknown Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> --- .../views/event-types-listing-view.tsx | 81 +++++++++---------- apps/web/playwright/event-types.e2e.ts | 2 + 2 files changed, 42 insertions(+), 41 deletions(-) diff --git a/apps/web/modules/event-types/views/event-types-listing-view.tsx b/apps/web/modules/event-types/views/event-types-listing-view.tsx index eeb1c98875..16e18c1510 100644 --- a/apps/web/modules/event-types/views/event-types-listing-view.tsx +++ b/apps/web/modules/event-types/views/event-types-listing-view.tsx @@ -164,7 +164,7 @@ const Item = ({ ) : null} {readOnly && ( - + {t("readonly")} )} @@ -195,7 +195,7 @@ const Item = ({ ) : null} {readOnly && ( - + {t("readonly")} )} @@ -513,7 +513,8 @@ export const EventTypeList = ({ )} - {!isManagedEventType && !isChildrenManagedEventType && ( + {/* readonly is only set when we are on a team - if we are on a user event type null will be the value. */} + {!readOnly && !isManagedEventType && !isChildrenManagedEventType && ( <> )} {/* readonly is only set when we are on a team - if we are on a user event type null will be the value. */} - {(group.metadata?.readOnly === false || group.metadata.readOnly === null) && - !isChildrenManagedEventType && ( - <> - - - { - setDeleteDialogOpen(true); - setDeleteDialogTypeId(type.id); - setDeleteDialogSchedulingType(type.schedulingType); - }} - StartIcon="trash" - className="w-full rounded-none"> - {t("delete")} - - - - )} + {!readOnly && !isChildrenManagedEventType && ( + <> + + + { + setDeleteDialogOpen(true); + setDeleteDialogTypeId(type.id); + setDeleteDialogSchedulingType(type.schedulingType); + }} + StartIcon="trash" + className="w-full rounded-none"> + {t("delete")} + + + + )} @@ -629,7 +629,7 @@ export const EventTypeList = ({ )} - {!isManagedEventType && !isChildrenManagedEventType && ( + {!readOnly && !isManagedEventType && !isChildrenManagedEventType && ( openDuplicateModal(type, group)} @@ -640,24 +640,23 @@ export const EventTypeList = ({ )} {/* readonly is only set when we are on a team - if we are on a user event type null will be the value. */} - {(group.metadata?.readOnly === false || group.metadata.readOnly === null) && - !isChildrenManagedEventType && ( - <> - - { - setDeleteDialogOpen(true); - setDeleteDialogTypeId(type.id); - setDeleteDialogSchedulingType(type.schedulingType); - }} - StartIcon="trash" - className="w-full rounded-none"> - {t("delete")} - - - - )} + {!readOnly && !isChildrenManagedEventType && ( + <> + + { + setDeleteDialogOpen(true); + setDeleteDialogTypeId(type.id); + setDeleteDialogSchedulingType(type.schedulingType); + }} + StartIcon="trash" + className="w-full rounded-none"> + {t("delete")} + + + + )} {!isManagedEventType && (
diff --git a/apps/web/playwright/event-types.e2e.ts b/apps/web/playwright/event-types.e2e.ts index 0dd203fb2b..dc8eea1755 100644 --- a/apps/web/playwright/event-types.e2e.ts +++ b/apps/web/playwright/event-types.e2e.ts @@ -91,6 +91,8 @@ testBothFutureAndLegacyRoutes.describe("Event Types tests", () => { const firstFullSlug = await page.locator(`[data-testid=event-type-slug-${eventTypeId}]`).innerText(); const firstSlug = firstFullSlug.split("/")[2]; + await expect(page.locator("[data-testid=readonly-badge]")).toBeHidden(); + await page.click(`[data-testid=event-type-options-${eventTypeId}]`); await page.click(`[data-testid=event-type-duplicate-${eventTypeId}]`); // Wait for the dialog to appear so we can get the URL