@liveblocks/react-ui
Version:
A set of React pre-built components for the Liveblocks products. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.
1 lines • 2.52 kB
Source Map (JSON)
{"version":3,"file":"use-group-mention.cjs","sources":["../../src/utils/use-group-mention.ts"],"sourcesContent":["import type { GroupMentionData } from \"@liveblocks/core\";\nimport { useGroup } from \"@liveblocks/react/_private\";\nimport { useMemo } from \"react\";\n\nimport { useCurrentUserId } from \"../shared\";\nimport { useInitial } from \"./use-initial\";\n\nexport function useIsGroupMentionMember(mention: GroupMentionData): boolean {\n // Changing the contents of a group mention is not supported\n // to support the Rules of Hooks.\n const frozenMention = useInitial(mention);\n const frozenUserIds = frozenMention.userIds;\n\n // This is enforced at the type level, but just in case.\n if (frozenMention.kind !== \"group\") {\n return false;\n } else if (Array.isArray(frozenUserIds)) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const currentId = useCurrentUserId();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const isMember = useMemo(() => {\n return frozenUserIds.some((userId) => userId === currentId);\n }, [frozenUserIds, currentId]);\n\n return isMember;\n } else {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const currentId = useCurrentUserId();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { group } = useGroup(frozenMention.id);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const isMember = useMemo(() => {\n return Boolean(group?.members.some((member) => member.id === currentId));\n }, [group, currentId]);\n\n return isMember;\n }\n}\n"],"names":["useInitial","useCurrentUserId","useMemo","useGroup"],"mappings":";;;;;;;AAOO,SAAS,wBAAwB,OAAoC,EAAA;AAG1E,EAAM,MAAA,aAAA,GAAgBA,sBAAW,OAAO,CAAA,CAAA;AACxC,EAAA,MAAM,gBAAgB,aAAc,CAAA,OAAA,CAAA;AAGpC,EAAI,IAAA,aAAA,CAAc,SAAS,OAAS,EAAA;AAClC,IAAO,OAAA,KAAA,CAAA;AAAA,GACE,MAAA,IAAA,KAAA,CAAM,OAAQ,CAAA,aAAa,CAAG,EAAA;AAEvC,IAAA,MAAM,YAAYC,uBAAiB,EAAA,CAAA;AAEnC,IAAM,MAAA,QAAA,GAAWC,cAAQ,MAAM;AAC7B,MAAA,OAAO,aAAc,CAAA,IAAA,CAAK,CAAC,MAAA,KAAW,WAAW,SAAS,CAAA,CAAA;AAAA,KACzD,EAAA,CAAC,aAAe,EAAA,SAAS,CAAC,CAAA,CAAA;AAE7B,IAAO,OAAA,QAAA,CAAA;AAAA,GACF,MAAA;AAEL,IAAA,MAAM,YAAYD,uBAAiB,EAAA,CAAA;AAEnC,IAAA,MAAM,EAAE,KAAA,EAAU,GAAAE,iBAAA,CAAS,cAAc,EAAE,CAAA,CAAA;AAE3C,IAAM,MAAA,QAAA,GAAWD,cAAQ,MAAM;AAC7B,MAAO,OAAA,OAAA,CAAQ,OAAO,OAAQ,CAAA,IAAA,CAAK,CAAC,MAAW,KAAA,MAAA,CAAO,EAAO,KAAA,SAAS,CAAC,CAAA,CAAA;AAAA,KACtE,EAAA,CAAC,KAAO,EAAA,SAAS,CAAC,CAAA,CAAA;AAErB,IAAO,OAAA,QAAA,CAAA;AAAA,GACT;AACF;;;;"}