Skip to content

Commit 43cb531

Browse files
committed
fix #13 bio editor crashing with commet bios
1 parent 6e03305 commit 43cb531

3 files changed

Lines changed: 15 additions & 7 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## Version 1.1.4
44

55
- Various performance improvements
6+
- Fix bio editor crashing when faced with commet bio format.
67

78
## Version 1.1.3
89

src/app/features/settings/account/BioEditor.tsx

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { SettingTile } from '../../../components/setting-tile';
1818
import * as css from './BioEditor.css';
1919

2020
type BioEditorProps = {
21-
value?: string;
21+
value?: string | any;
2222
isSaving?: boolean;
2323
imagePackRooms?: any[];
2424
onSave: (htmlContent: string) => void;
@@ -67,15 +67,23 @@ export function BioEditor({ value, isSaving, imagePackRooms, onSave }: BioEditor
6767

6868
if (valueChanged || isFirstValidLoad) {
6969
prevValue.current = value;
70-
const incomingPlainText = value ? toPlainText(htmlToEditorInput(value, isMarkdown), isMarkdown).trim() : '';
70+
71+
let normalizedValue = value;
72+
if (typeof normalizedValue === 'object' && normalizedValue !== null && 'formatted_body' in normalizedValue) {
73+
normalizedValue = normalizedValue.formatted_body;
74+
}
75+
76+
const safeValue = typeof normalizedValue === 'string' ? normalizedValue : '';
77+
78+
const incomingPlainText = toPlainText(htmlToEditorInput(safeValue, isMarkdown), isMarkdown).trim();
7179
const currentPlainText = toPlainText(editor.children, isMarkdown).trim();
7280

7381
if (currentPlainText === incomingPlainText && initialized.current) return;
7482

75-
const isLikelyHtml = value?.includes('<') || value?.includes('>');
83+
const isLikelyHtml = safeValue.includes('<') || safeValue.includes('>');
7684
const initialValue = isLikelyHtml
77-
? htmlToEditorInput(value!, isMarkdown)
78-
: plainToEditorInput(value ?? '', isMarkdown);
85+
? htmlToEditorInput(safeValue, isMarkdown)
86+
: plainToEditorInput(safeValue, isMarkdown);
7987

8088
editor.children = initialValue;
8189
Editor.normalize(editor, { force: true });

src/app/features/settings/account/Profile.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import {
2525
Spinner,
2626
} from 'folds';
2727
import FocusTrap from 'focus-trap-react';
28-
import { MatrixClient } from 'matrix-js-sdk';
28+
import { useSetAtom } from 'jotai';
2929
import { SequenceCard } from '../../../components/sequence-card';
3030
import { SequenceCardStyle } from '../styles.css';
3131
import { SettingTile } from '../../../components/setting-tile';
@@ -48,7 +48,6 @@ import { TimezoneEditor } from './TimezoneEditor';
4848
import { PronounEditor } from './PronounEditor';
4949
import { BioEditor } from './BioEditor';
5050
import { NameColorEditor } from './NameColorEditor';
51-
import { useSetAtom } from 'jotai';
5251
import { profilesCacheAtom } from '../../../state/userRoomProfile';
5352

5453
type PronounSet = {

0 commit comments

Comments
 (0)