From 3ddf8e2a8b6590bc57ca1db8fe9d1cec6d721fb4 Mon Sep 17 00:00:00 2001 From: gopu-bruno Date: Fri, 30 Jan 2026 23:04:48 +0530 Subject: [PATCH] fix: support multiline descriptions in example blocks (#6879) * fix: support multiline descriptions in example blocks * refactor: use outdentString for example multiline text block parsing * test: add test case for examples without description field * test: add jsonToBru conversion test for multiline descriptions * refactor: generalize descriptionvalue to textvalue in example grammar --- .../CollectionItem/ExampleItem/index.js | 4 +- .../bruno-lang/v2/src/example/bruToJson.js | 21 ++++- .../bruno-lang/v2/src/example/jsonToBru.js | 3 +- .../v2/tests/examples/examples.spec.js | 87 +++++++++++++++++++ .../bru/examples-multiline-description.bru | 23 +++++ .../json/examples-multiline-description.json | 21 +++++ 6 files changed, 152 insertions(+), 7 deletions(-) create mode 100644 packages/bruno-lang/v2/tests/examples/fixtures/bru/examples-multiline-description.bru create mode 100644 packages/bruno-lang/v2/tests/examples/fixtures/json/examples-multiline-description.json diff --git a/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/ExampleItem/index.js b/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/ExampleItem/index.js index fe214a384..510e2b018 100644 --- a/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/ExampleItem/index.js +++ b/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/ExampleItem/index.js @@ -27,7 +27,7 @@ const ExampleItem = ({ example, item, collection }) => { // Check if this example is the active tab const activeTabUid = useSelector((state) => state.tabs?.activeTabUid); const isExampleActive = activeTabUid === example.uid; - const [editName, setEditName] = useState(example.name); + const [editName, setEditName] = useState(example.name || ''); const [showRenameModal, setShowRenameModal] = useState(false); const [showDeleteModal, setShowDeleteModal] = useState(false); const [generateCodeItemModalOpen, setGenerateCodeItemModalOpen] = useState(false); @@ -230,7 +230,7 @@ const ExampleItem = ({ example, item, collection }) => { handleConfirm={() => handleRenameConfirm(editName)} confirmText="Rename" cancelText="Cancel" - confirmDisabled={!editName.trim()} + confirmDisabled={!editName || !editName.trim()} >