{"version":3,"sources":["../../../src/components/options-panel/options-panel.tsx","../../../src/components/text/text.tsx"],"sourcesContent":["import { Dispatch, SetStateAction, useEffect, useState } from \"react\";\r\nimport Avartar from \"../avartar/avartar\";\r\n\r\nimport styles from \"./options-panel.module.css\";\r\nimport Text from \"../text/text\";\r\nimport ChatClient, { Message } from \"softchatjs-core\";\r\n\r\ntype ConversationListProps = {\r\n  message: Message;\r\n  setEditDetails: Dispatch<\r\n    SetStateAction<\r\n      | { message: Message; isEditing?: boolean; isReplying?: boolean }\r\n      | undefined\r\n    >\r\n  >;\r\n  canEdit?: boolean;\r\n  openEmojiPanel: () => void;\r\n  optionsMenuRef: any;\r\n  mousePosition: {\r\n    x: number;\r\n    y: number;\r\n  };\r\n  conversationId: string;\r\n  client: ChatClient;\r\n  closeOptionsMenu: () => void;\r\n  textInputRef: any;\r\n};\r\n\r\nconst OptionsPanel = (props: ConversationListProps) => {\r\n  const {\r\n    setEditDetails,\r\n    message,\r\n    canEdit,\r\n    openEmojiPanel,\r\n    optionsMenuRef,\r\n    mousePosition: position,\r\n    client,\r\n    conversationId,\r\n    closeOptionsMenu,\r\n    textInputRef,\r\n  } = props;\r\n\r\n  const options = [\r\n    {\r\n      title: \"Edit message\",\r\n      onPress: () => {\r\n        setEditDetails({\r\n          message,\r\n          isEditing: true,\r\n        });\r\n        closeOptionsMenu();\r\n      },\r\n      enabled: canEdit,\r\n    },\r\n\r\n    {\r\n      title: \"Reply\",\r\n      onPress: () => {\r\n        setEditDetails({\r\n          message,\r\n          isReplying: true,\r\n        });\r\n        closeOptionsMenu();\r\n        textInputRef.current?.focus();\r\n      },\r\n      enabled: true,\r\n    },\r\n    {\r\n      title: \"Add reaction\",\r\n      onPress: () => {\r\n        openEmojiPanel();\r\n      },\r\n      enabled: true,\r\n    },\r\n    {\r\n      title: \"Delete\",\r\n      onPress: () => {\r\n        const msClient = client.messageClient(conversationId);\r\n        msClient.deleteMessage(message.messageId, message.to, conversationId);\r\n      },\r\n      enabled: canEdit,\r\n    },\r\n  ];\r\n\r\n  return (\r\n    <div ref={optionsMenuRef} className={`${styles.options}`}>\r\n      <ul>\r\n        {options.map((item, index) => {\r\n          if (item.enabled) {\r\n            return (\r\n              <li key={index} onClick={item.onPress}>\r\n                <Text size=\"sm\" text={item.title} />\r\n              </li>\r\n            );\r\n          }\r\n        })}\r\n      </ul>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default OptionsPanel;\r\n","import React from \"react\";\r\nimport styles from \"./text.module.css\";\r\n\r\ntype TextProps = {\r\n  text: string;\r\n  styles?: React.CSSProperties | undefined;\r\n  weight?: \"bold\" | \"medium\";\r\n  size?: \"sm\" | \"md\" | \"xs\";\r\n};\r\n\r\nconst Text = (props: TextProps) => {\r\n  const textWeight = {\r\n    bold: styles.textBold,\r\n    medium: `${styles.textMedium}`,\r\n  };\r\n\r\n  const textSize: any = {\r\n    sm: styles.textSmall,\r\n    md: styles.textSizeMd,\r\n    xs: styles.textExtraSmall,\r\n  };\r\n\r\n  return (\r\n    <p\r\n      style={props.styles}\r\n      className={`${styles.text} ${textWeight[props.weight || \"medium\"]} ${\r\n        textSize[props.size || \"md\"]\r\n      }`}\r\n    >\r\n      {props.text}\r\n    </p>\r\n  );\r\n};\r\n\r\nexport default Text;\r\n"],"mappings":"AAGA,OAAOA,MAAY,oCCFnB,OAAOC,MAAY,iCAsBf,cAAAC,MAAA,oBAbJ,IAAMC,EAAQC,GAAqB,CACjC,IAAMC,EAAa,CACjB,KAAMJ,EAAO,SACb,OAAQ,GAAGA,EAAO,UAAU,EAC9B,EAEMK,EAAgB,CACpB,GAAIL,EAAO,UACX,GAAIA,EAAO,WACX,GAAIA,EAAO,cACb,EAEA,OACEC,EAAC,KACC,MAAOE,EAAM,OACb,UAAW,GAAGH,EAAO,IAAI,IAAII,EAAWD,EAAM,QAAU,QAAQ,CAAC,IAC/DE,EAASF,EAAM,MAAQ,IAAI,CAC7B,GAEC,SAAAA,EAAM,KACT,CAEJ,EAEOG,EAAQJ,EDyDC,cAAAK,MAAA,oBA/DhB,IAAMC,EAAgBC,GAAiC,CACrD,GAAM,CACJ,eAAAC,EACA,QAAAC,EACA,QAAAC,EACA,eAAAC,EACA,eAAAC,EACA,cAAeC,EACf,OAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,aAAAC,CACF,EAAIV,EAEEW,EAAU,CACd,CACE,MAAO,eACP,QAAS,IAAM,CACbV,EAAe,CACb,QAAAC,EACA,UAAW,EACb,CAAC,EACDO,EAAiB,CACnB,EACA,QAASN,CACX,EAEA,CACE,MAAO,QACP,QAAS,IAAM,CACbF,EAAe,CACb,QAAAC,EACA,WAAY,EACd,CAAC,EACDO,EAAiB,EACjBC,EAAa,SAAS,MAAM,CAC9B,EACA,QAAS,EACX,EACA,CACE,MAAO,eACP,QAAS,IAAM,CACbN,EAAe,CACjB,EACA,QAAS,EACX,EACA,CACE,MAAO,SACP,QAAS,IAAM,CACIG,EAAO,cAAcC,CAAc,EAC3C,cAAcN,EAAQ,UAAWA,EAAQ,GAAIM,CAAc,CACtE,EACA,QAASL,CACX,CACF,EAEA,OACEL,EAAC,OAAI,IAAKO,EAAgB,UAAW,GAAGO,EAAO,OAAO,GACpD,SAAAd,EAAC,MACE,SAAAa,EAAQ,IAAI,CAACE,EAAMC,IAAU,CAC5B,GAAID,EAAK,QACP,OACEf,EAAC,MAAe,QAASe,EAAK,QAC5B,SAAAf,EAACiB,EAAA,CAAK,KAAK,KAAK,KAAMF,EAAK,MAAO,GAD3BC,CAET,CAGN,CAAC,EACH,EACF,CAEJ,EAEOE,EAAQjB","names":["styles","styles","jsx","Text","props","textWeight","textSize","text_default","jsx","OptionsPanel","props","setEditDetails","message","canEdit","openEmojiPanel","optionsMenuRef","position","client","conversationId","closeOptionsMenu","textInputRef","options","styles","item","index","text_default","options_panel_default"]}