Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit 7674548

Browse files
committed
Enabled save button only when link is changed
1 parent e532205 commit 7674548

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

src/components/views/rooms/wysiwyg_composer/components/LinkModal.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,9 @@ interface LinkModalProps {
5858
}
5959

6060
export function LinkModal({ composer, isTextEnabled, onClose, composerContext, isEditing }: LinkModalProps) {
61+
const [hasLinkChanged, setHasLinkChanged] = useState(false);
6162
const [fields, setFields] = useState({ text: "", link: isEditing ? composer.getLink() : "" });
62-
const isSaveDisabled = (isTextEnabled && isEmpty(fields.text)) || isEmpty(fields.link);
63+
const isSaveDisabled = !hasLinkChanged && ((isTextEnabled && isEmpty(fields.text)) || isEmpty(fields.link));
6364

6465
return (
6566
<BaseDialog
@@ -97,9 +98,10 @@ export function LinkModal({ composer, isTextEnabled, onClose, composerContext, i
9798
label={_td("Link")}
9899
value={fields.link}
99100
placeholder=""
100-
onChange={(e: ChangeEvent<HTMLInputElement>) =>
101-
setFields((fields) => ({ ...fields, link: e.target.value }))
102-
}
101+
onChange={(e: ChangeEvent<HTMLInputElement>) => {
102+
setHasLinkChanged(true);
103+
setFields((fields) => ({ ...fields, link: e.target.value }));
104+
}}
103105
/>
104106

105107
<div className="mx_LinkModal_buttons">

test/components/views/rooms/wysiwyg_composer/components/LinkModal-test.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,5 +152,12 @@ describe("LinkModal", () => {
152152

153153
// Then
154154
expect(screen.getByLabelText("Link")).toContainHTML("my initial content");
155+
expect(screen.getByText("Save")).toBeDisabled();
156+
157+
// When
158+
await userEvent.type(screen.getByLabelText("Link"), "l");
159+
160+
// Then
161+
await waitFor(() => expect(screen.getByText("Save")).toBeEnabled());
155162
});
156163
});

0 commit comments

Comments
 (0)