From d19d7a66ffb3427f5a681bdd984d9a84465fa8cd Mon Sep 17 00:00:00 2001 From: Kasper Fabricius Kristensen <45367945+kasperkristensen@users.noreply.github.com> Date: Tue, 5 Nov 2024 08:54:28 +0100 Subject: [PATCH] fix(dashboard): Allow using enter key to create newline in Textarea (#9913) * fix(dashboard):Allow using enter key to create newline in Textarea * update scheam file --- .../utilities/keybound-form/keybound-form.tsx | 7 ++++++ .../src/i18n/translations/$schema.json | 25 ++++++++++++++++--- .../dashboard/src/i18n/translations/en.json | 6 ++++- .../edit-product-form/edit-product-form.tsx | 10 ++++++-- .../products/product-edit/product-edit.tsx | 5 +++- 5 files changed, 45 insertions(+), 8 deletions(-) diff --git a/packages/admin/dashboard/src/components/utilities/keybound-form/keybound-form.tsx b/packages/admin/dashboard/src/components/utilities/keybound-form/keybound-form.tsx index 6315b80c35..23a4d02495 100644 --- a/packages/admin/dashboard/src/components/utilities/keybound-form/keybound-form.tsx +++ b/packages/admin/dashboard/src/components/utilities/keybound-form/keybound-form.tsx @@ -14,6 +14,13 @@ export const KeyboundForm = React.forwardRef< const handleKeyDown = (event: React.KeyboardEvent) => { if (event.key === "Enter") { + if ( + event.target instanceof HTMLTextAreaElement && + !(event.metaKey || event.ctrlKey) + ) { + return + } + event.preventDefault() if (event.metaKey || event.ctrlKey) { diff --git a/packages/admin/dashboard/src/i18n/translations/$schema.json b/packages/admin/dashboard/src/i18n/translations/$schema.json index 4a488e2c25..582afa68b3 100644 --- a/packages/admin/dashboard/src/i18n/translations/$schema.json +++ b/packages/admin/dashboard/src/i18n/translations/$schema.json @@ -1555,6 +1555,26 @@ ], "additionalProperties": false }, + "edit": { + "type": "object", + "properties": { + "header": { + "type": "string" + }, + "description": { + "type": "string" + }, + "successToast": { + "type": "string" + } + }, + "required": [ + "header", + "description", + "successToast" + ], + "additionalProperties": false + }, "create": { "type": "object", "properties": { @@ -1894,9 +1914,6 @@ "attributes": { "type": "string" }, - "editProduct": { - "type": "string" - }, "editAttributes": { "type": "string" }, @@ -2667,13 +2684,13 @@ "required": [ "domain", "list", + "edit", "create", "export", "import", "deleteWarning", "variants", "attributes", - "editProduct", "editAttributes", "editOptions", "editPrices", diff --git a/packages/admin/dashboard/src/i18n/translations/en.json b/packages/admin/dashboard/src/i18n/translations/en.json index 3dc170f5a7..ae8604bb43 100644 --- a/packages/admin/dashboard/src/i18n/translations/en.json +++ b/packages/admin/dashboard/src/i18n/translations/en.json @@ -380,6 +380,11 @@ "list": { "noRecordsMessage": "Create your first product to start selling." }, + "edit": { + "header": "Edit Product", + "description": "Edit the product details.", + "successToast": "Product {{title}} was successfully updated." + }, "create": { "header": "General", "tabs": { @@ -462,7 +467,6 @@ "deleteWarning": "You are about to delete the product {{title}}. This action cannot be undone.", "variants": "Variants", "attributes": "Attributes", - "editProduct": "Edit Product", "editAttributes": "Edit Attributes", "editOptions": "Edit Options", "editPrices": "Edit prices", diff --git a/packages/admin/dashboard/src/routes/products/product-edit/components/edit-product-form/edit-product-form.tsx b/packages/admin/dashboard/src/routes/products/product-edit/components/edit-product-form/edit-product-form.tsx index 17f4ba7278..819d9c02a8 100644 --- a/packages/admin/dashboard/src/routes/products/product-edit/components/edit-product-form/edit-product-form.tsx +++ b/packages/admin/dashboard/src/routes/products/product-edit/components/edit-product-form/edit-product-form.tsx @@ -1,4 +1,4 @@ -import { Button, Input, Select, Text, Textarea } from "@medusajs/ui" +import { Button, Input, Select, Text, Textarea, toast } from "@medusajs/ui" import { useTranslation } from "react-i18next" import * as zod from "zod" @@ -69,9 +69,15 @@ export const EditProductForm = ({ product }: EditProductFormProps) => { ...nullableData, }, { - onSuccess: () => { + onSuccess: ({ product }) => { + toast.success( + t("products.edit.successToast", { title: product.title }) + ) handleSuccess() }, + onError: (e) => { + toast.error(e.message) + }, } ) }) diff --git a/packages/admin/dashboard/src/routes/products/product-edit/product-edit.tsx b/packages/admin/dashboard/src/routes/products/product-edit/product-edit.tsx index 5f9b8957af..0444b715d5 100644 --- a/packages/admin/dashboard/src/routes/products/product-edit/product-edit.tsx +++ b/packages/admin/dashboard/src/routes/products/product-edit/product-edit.tsx @@ -23,8 +23,11 @@ export const ProductEdit = () => { - {t("products.editProduct")} + {t("products.edit.header")} + + {t("products.edit.description")} + {!isLoading && product && }