![]()
;
}
+
export const useTextComponentLock = ({ id, slide, defaultText, containerRef }: UseTextComponentLockArgs) => {
const spaceName = getSpaceNameFromUrl();
const { members, self } = useMembers();
@@ -32,7 +34,8 @@ export const useTextComponentLock = ({ id, slide, defaultText, containerRef }: U
const { channel } = useChannel(channelName, (message) => {
if (message.connectionId === self?.connectionId) return;
- updateContent(message.data);
+ const sanitizedValue = sanitize(message.data, { allowedTags: [] });
+ updateContent(sanitizedValue);
});
const optimisticallyLocked = !!activeMember;
diff --git a/demo/src/utils/active-member.ts b/demo/src/utils/active-member.ts
index e636d4b8..f860f327 100644
--- a/demo/src/utils/active-member.ts
+++ b/demo/src/utils/active-member.ts
@@ -5,6 +5,10 @@ export const findActiveMember = (id: string, slide: string, members?: Member[])
return members.find((member) => member.location?.element === id && member.location?.slide === slide);
};
+export const findActiveMembers = (id: string, slide: string, members?: Member[]) => {
+ return (members ?? []).filter((member) => member.location?.element === id && member.location?.slide === slide);
+};
+
export const getMemberFirstName = (member?: Member) => {
if (!member) return '';
return member.profileData.name.split(' ')[0];