UNPKG

@lobehub/ui

Version:

Lobe UI is an open-source UI component library for building AIGC web apps

1 lines 5.2 kB
{"version":3,"file":"EditableMessageList.mjs","names":["editableMessageMessages","Flexbox","Select","ControlInput","ActionIcon","Button"],"sources":["../../../src/chat/EditableMessageList/EditableMessageList.tsx"],"sourcesContent":["'use client';\n\nimport isEqual from 'fast-deep-equal';\nimport { Plus, Trash } from 'lucide-react';\nimport { memo, useEffect, useReducer } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport Button from '@/Button';\nimport ControlInput from '@/EditableText/ControlInput';\nimport { Flexbox } from '@/Flex';\nimport Select from '@/Select';\nimport editableMessageMessages from '@/i18n/resources/en/editableMessage';\nimport { useTranslation } from '@/i18n/useTranslation';\n\nimport { messagesReducer } from './messageReducer';\nimport type { EditableMessageListProps } from './type';\n\nconst EditableMessageList = memo<EditableMessageListProps>(\n ({ disabled, dataSources, onChange, texts }) => {\n const [chatMessages, dispatch] = useReducer(messagesReducer, dataSources);\n const { t } = useTranslation(editableMessageMessages);\n\n const addPropsText = texts?.addProps ?? t('editableMessage.addProps');\n const deleteText = texts?.delete ?? t('editableMessage.delete');\n const inputPlaceholderText = texts?.inputPlaceholder ?? t('editableMessage.inputPlaceholder');\n const outputPlaceholderText =\n texts?.outputPlaceholder ?? t('editableMessage.outputPlaceholder');\n const systemText = texts?.system ?? t('editableMessage.system');\n const inputText = texts?.input ?? t('editableMessage.input');\n const outputText = texts?.output ?? t('editableMessage.output');\n\n useEffect(() => {\n if (!isEqual(dataSources, chatMessages)) {\n onChange?.(chatMessages);\n }\n }, [chatMessages]);\n\n return dataSources ? (\n <Flexbox gap={12}>\n {chatMessages.map((item, index) => (\n <Flexbox\n align={'center'}\n gap={8}\n horizontal\n key={`${index}-${item.content}`}\n width={'100%'}\n >\n <Select\n disabled={disabled}\n onChange={(value) => {\n dispatch({ index, role: value, type: 'updateMessageRole' });\n }}\n options={[\n { label: systemText, value: 'system' },\n { label: inputText, value: 'user' },\n { label: outputText, value: 'assistant' },\n ]}\n style={{ width: 120 }}\n styles={{ popup: { root: { zIndex: 100 } } }}\n value={item.role}\n />\n <ControlInput\n disabled={disabled}\n onChange={(e) => {\n dispatch({ index, message: e, type: 'updateMessage' });\n }}\n placeholder={item.role === 'user' ? inputPlaceholderText : outputPlaceholderText}\n value={item.content}\n />\n <ActionIcon\n icon={Trash}\n onClick={() => {\n dispatch({ index, type: 'deleteMessage' });\n }}\n title={deleteText}\n variant={'filled'}\n />\n </Flexbox>\n ))}\n\n <Button\n block\n disabled={disabled}\n icon={Plus}\n onClick={() => {\n const lastMeg = chatMessages.at(-1);\n\n dispatch({\n message: { content: '', role: lastMeg?.role === 'user' ? 'assistant' : 'user' },\n type: 'addMessage',\n });\n }}\n >\n {addPropsText}\n </Button>\n </Flexbox>\n ) : undefined;\n },\n isEqual,\n);\n\nEditableMessageList.displayName = 'EditableMessageList';\n\nexport default EditableMessageList;\n"],"mappings":";;;;;;;;;;;;;;;;AAiBA,MAAM,sBAAsB,MACzB,EAAE,UAAU,aAAa,UAAU,YAAY;CAC9C,MAAM,CAAC,cAAc,YAAY,WAAW,iBAAiB,YAAY;CACzE,MAAM,EAAE,MAAM,eAAeA,wBAAwB;CAErD,MAAM,eAAe,OAAO,YAAY,EAAE,2BAA2B;CACrE,MAAM,aAAa,OAAO,UAAU,EAAE,yBAAyB;CAC/D,MAAM,uBAAuB,OAAO,oBAAoB,EAAE,mCAAmC;CAC7F,MAAM,wBACJ,OAAO,qBAAqB,EAAE,oCAAoC;CACpE,MAAM,aAAa,OAAO,UAAU,EAAE,yBAAyB;CAC/D,MAAM,YAAY,OAAO,SAAS,EAAE,wBAAwB;CAC5D,MAAM,aAAa,OAAO,UAAU,EAAE,yBAAyB;AAE/D,iBAAgB;AACd,MAAI,CAAC,QAAQ,aAAa,aAAa,CACrC,YAAW,aAAa;IAEzB,CAAC,aAAa,CAAC;AAElB,QAAO,cACL,qBAACC;EAAQ,KAAK;aACX,aAAa,KAAK,MAAM,UACvB,qBAACA;GACC,OAAO;GACP,KAAK;GACL;GAEA,OAAO;;IAEP,oBAACC;KACW;KACV,WAAW,UAAU;AACnB,eAAS;OAAE;OAAO,MAAM;OAAO,MAAM;OAAqB,CAAC;;KAE7D,SAAS;MACP;OAAE,OAAO;OAAY,OAAO;OAAU;MACtC;OAAE,OAAO;OAAW,OAAO;OAAQ;MACnC;OAAE,OAAO;OAAY,OAAO;OAAa;MAC1C;KACD,OAAO,EAAE,OAAO,KAAK;KACrB,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,KAAK,EAAE,EAAE;KAC5C,OAAO,KAAK;MACZ;IACF,oBAACC;KACW;KACV,WAAW,MAAM;AACf,eAAS;OAAE;OAAO,SAAS;OAAG,MAAM;OAAiB,CAAC;;KAExD,aAAa,KAAK,SAAS,SAAS,uBAAuB;KAC3D,OAAO,KAAK;MACZ;IACF,oBAACC;KACC,MAAM;KACN,eAAe;AACb,eAAS;OAAE;OAAO,MAAM;OAAiB,CAAC;;KAE5C,OAAO;KACP,SAAS;MACT;;KAhCG,GAAG,MAAM,GAAG,KAAK,UAiCd,CACV,EAEF,oBAACC;GACC;GACU;GACV,MAAM;GACN,eAAe;AAGb,aAAS;KACP,SAAS;MAAE,SAAS;MAAI,MAHV,aAAa,GAAG,GAAG,EAGM,SAAS,SAAS,cAAc;MAAQ;KAC/E,MAAM;KACP,CAAC;;aAGH;IACM;GACD,GACR;GAEN,QACD;AAED,oBAAoB,cAAc;AAElC,kCAAe"}