@contentstack/live-preview-utils
Version:
Contentstack provides the Live Preview SDK to establish a communication channel between the various Contentstack SDKs and your website, transmitting live changes to the preview pane.
1 lines • 4.34 kB
Source Map (JSON)
{"version":3,"sources":["../../../../../../src/visualBuilder/components/Collab/Avatar/Avatar.tsx"],"sourcesContent":["/** @jsxImportSource preact */\nimport React from \"preact/compat\";\nimport Tooltip from \"../Tooltip/Tooltip\";\nimport classNames from \"classnames\";\nimport { collabStyles, flexAlignCenter } from \"../../../collab.style\";\n\nexport type AvatarProps = {\n avatar: AvatarData;\n type?: \"text\" | \"image\";\n testId?: string;\n};\n\nexport type AvatarData = {\n id: number;\n name: string;\n image?: string;\n email?: string;\n};\n\ninterface DisplayAvatarContentProps {\n type: \"text\" | \"image\";\n avatar: AvatarData;\n initials: string;\n}\n\nfunction getInitials(name?: string): string {\n if (!name) return \"\";\n\n const nameParts = name.trim().split(\" \");\n\n if (nameParts.length === 1) {\n return name.substring(0, 2);\n }\n\n return nameParts[0][0] + nameParts[nameParts.length - 1][0];\n}\n\nfunction DisplayAvatarContent({\n type,\n avatar,\n initials,\n}: DisplayAvatarContentProps) {\n if (type === \"image\" && avatar.image) {\n return (\n <img\n data-testid={\"collab-avatar-image\"}\n src={avatar.image}\n alt={avatar.name}\n className={classNames(\n \"collab-avatar__image\",\n collabStyles()[\"collab-avatar__image\"]\n )}\n />\n );\n }\n return <span className={`collab-avatar-link__initials`}>{initials}</span>;\n}\n\nfunction Avatar({\n avatar,\n type = \"text\",\n testId = \"collab-avatar\",\n}: AvatarProps) {\n const initials = getInitials(avatar.name);\n return (\n <div data-testid={testId}>\n <Tooltip\n content={avatar.name || avatar.email || \"\"}\n position=\"bottom\"\n >\n <div\n className={classNames(\n \"collab-avatar\",\n \"collab-avatar--single\",\n \"flex-v-center\",\n collabStyles()[\"collab-avatar\"],\n collabStyles()[\"collab-avatar--single\"],\n flexAlignCenter\n )}\n >\n <span\n className={classNames(\n \"collab-avatar__link\",\n \"flex-v-center\",\n collabStyles()[\"collab-avatar__link\"],\n flexAlignCenter\n )}\n >\n <DisplayAvatarContent\n type={type}\n avatar={avatar}\n initials={initials}\n />\n </span>\n </div>\n </Tooltip>\n </div>\n );\n}\n\nexport default Avatar;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,qBAAoB;AACpB,wBAAuB;AACvB,oBAA8C;AAwClC;AAnBZ,SAAS,YAAY,MAAuB;AACxC,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,YAAY,KAAK,KAAK,EAAE,MAAM,GAAG;AAEvC,MAAI,UAAU,WAAW,GAAG;AACxB,WAAO,KAAK,UAAU,GAAG,CAAC;AAAA,EAC9B;AAEA,SAAO,UAAU,CAAC,EAAE,CAAC,IAAI,UAAU,UAAU,SAAS,CAAC,EAAE,CAAC;AAC9D;AAEA,SAAS,qBAAqB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACJ,GAA8B;AAC1B,MAAI,SAAS,WAAW,OAAO,OAAO;AAClC,WACI;AAAA,MAAC;AAAA;AAAA,QACG,eAAa;AAAA,QACb,KAAK,OAAO;AAAA,QACZ,KAAK,OAAO;AAAA,QACZ,eAAW,kBAAAA;AAAA,UACP;AAAA,cACA,4BAAa,EAAE,sBAAsB;AAAA,QACzC;AAAA;AAAA,IACJ;AAAA,EAER;AACA,SAAO,4CAAC,UAAK,WAAW,gCAAiC,oBAAS;AACtE;AAEA,SAAS,OAAO;AAAA,EACZ;AAAA,EACA,OAAO;AAAA,EACP,SAAS;AACb,GAAgB;AACZ,QAAM,WAAW,YAAY,OAAO,IAAI;AACxC,SACI,4CAAC,SAAI,eAAa,QACd;AAAA,IAAC,eAAAC;AAAA,IAAA;AAAA,MACG,SAAS,OAAO,QAAQ,OAAO,SAAS;AAAA,MACxC,UAAS;AAAA,MAET;AAAA,QAAC;AAAA;AAAA,UACG,eAAW,kBAAAD;AAAA,YACP;AAAA,YACA;AAAA,YACA;AAAA,gBACA,4BAAa,EAAE,eAAe;AAAA,gBAC9B,4BAAa,EAAE,uBAAuB;AAAA,YACtC;AAAA,UACJ;AAAA,UAEA;AAAA,YAAC;AAAA;AAAA,cACG,eAAW,kBAAAA;AAAA,gBACP;AAAA,gBACA;AAAA,oBACA,4BAAa,EAAE,qBAAqB;AAAA,gBACpC;AAAA,cACJ;AAAA,cAEA;AAAA,gBAAC;AAAA;AAAA,kBACG;AAAA,kBACA;AAAA,kBACA;AAAA;AAAA,cACJ;AAAA;AAAA,UACJ;AAAA;AAAA,MACJ;AAAA;AAAA,EACJ,GACJ;AAER;AAEA,IAAO,iBAAQ;","names":["classNames","Tooltip"]}