Commit c76b38b5 authored by JzoNg's avatar JzoNg

fix callback of segment creation

parent da455e40
...@@ -25,6 +25,7 @@ import type { CommonResponse } from '@/models/common' ...@@ -25,6 +25,7 @@ import type { CommonResponse } from '@/models/common'
import { Edit03, XClose } from '@/app/components/base/icons/src/vender/line/general' import { Edit03, XClose } from '@/app/components/base/icons/src/vender/line/general'
import AutoHeightTextarea from '@/app/components/base/auto-height-textarea/common' import AutoHeightTextarea from '@/app/components/base/auto-height-textarea/common'
import Button from '@/app/components/base/button' import Button from '@/app/components/base/button'
import NewSegmentModal from '@/app/components/datasets/documents/detail/new-segment-modal'
export const SegmentIndexTag: FC<{ positionId: string | number; className?: string }> = ({ positionId, className }) => { export const SegmentIndexTag: FC<{ positionId: string | number; className?: string }> = ({ positionId, className }) => {
const localPositionId = useMemo(() => { const localPositionId = useMemo(() => {
...@@ -183,13 +184,15 @@ export const splitArray = (arr: any[], size = 3) => { ...@@ -183,13 +184,15 @@ export const splitArray = (arr: any[], size = 3) => {
} }
type ICompletedProps = { type ICompletedProps = {
showNewSegmentModal: boolean
onNewSegmentModalChange: (state: boolean) => void
// data: Array<{}> // all/part segments // data: Array<{}> // all/part segments
} }
/** /**
* Embedding done, show list of all segments * Embedding done, show list of all segments
* Support search and filter * Support search and filter
*/ */
const Completed: FC<ICompletedProps> = () => { const Completed: FC<ICompletedProps> = ({ showNewSegmentModal, onNewSegmentModalChange }) => {
const { t } = useTranslation() const { t } = useTranslation()
const { notify } = useContext(ToastContext) const { notify } = useContext(ToastContext)
const { datasetId = '', documentId = '', docForm } = useContext(DocumentContext) const { datasetId = '', documentId = '', docForm } = useContext(DocumentContext)
...@@ -329,6 +332,12 @@ const Completed: FC<ICompletedProps> = () => { ...@@ -329,6 +332,12 @@ const Completed: FC<ICompletedProps> = () => {
onCancel={onCloseModal} onCancel={onCloseModal}
/> />
</Modal> </Modal>
<NewSegmentModal
isShow={showNewSegmentModal}
docForm={docForm}
onCancel={() => onNewSegmentModalChange(false)}
onSave={() => getSegments(false)}
/>
</> </>
) )
} }
......
...@@ -54,6 +54,7 @@ const DocumentDetail: FC<Props> = ({ datasetId, documentId }) => { ...@@ -54,6 +54,7 @@ const DocumentDetail: FC<Props> = ({ datasetId, documentId }) => {
const { t } = useTranslation() const { t } = useTranslation()
const router = useRouter() const router = useRouter()
const [showMetadata, setShowMetadata] = useState(true) const [showMetadata, setShowMetadata] = useState(true)
const [showNewSegmentModal, setShowNewSegmentModal] = useState(false)
const { data: documentDetail, error, mutate: detailMutate } = useSWR({ const { data: documentDetail, error, mutate: detailMutate } = useSWR({
action: 'fetchDocumentDetail', action: 'fetchDocumentDetail',
...@@ -105,6 +106,7 @@ const DocumentDetail: FC<Props> = ({ datasetId, documentId }) => { ...@@ -105,6 +106,7 @@ const DocumentDetail: FC<Props> = ({ datasetId, documentId }) => {
datasetId={datasetId} datasetId={datasetId}
onUpdate={handleOperate} onUpdate={handleOperate}
className='!w-[216px]' className='!w-[216px]'
showNewSegmentModal={() => setShowNewSegmentModal(true)}
/> />
<button <button
className={cn(style.layoutRightIcon, showMetadata ? style.iconShow : style.iconClose)} className={cn(style.layoutRightIcon, showMetadata ? style.iconShow : style.iconClose)}
...@@ -115,7 +117,13 @@ const DocumentDetail: FC<Props> = ({ datasetId, documentId }) => { ...@@ -115,7 +117,13 @@ const DocumentDetail: FC<Props> = ({ datasetId, documentId }) => {
{isDetailLoading {isDetailLoading
? <Loading type='app' /> ? <Loading type='app' />
: <div className={`box-border h-full w-full overflow-y-scroll ${embedding ? 'py-12 px-16' : 'pb-[30px] pt-3 px-6'}`}> : <div className={`box-border h-full w-full overflow-y-scroll ${embedding ? 'py-12 px-16' : 'pb-[30px] pt-3 px-6'}`}>
{embedding ? <Embedding detail={documentDetail} detailUpdate={detailMutate} /> : <Completed />} {embedding
? <Embedding detail={documentDetail} detailUpdate={detailMutate} />
: <Completed
showNewSegmentModal={showNewSegmentModal}
onNewSegmentModalChange={setShowNewSegmentModal}
/>
}
</div> </div>
} }
{showMetadata && <Metadata {showMetadata && <Metadata
......
...@@ -28,7 +28,6 @@ import ProgressBar from '@/app/components/base/progress-bar' ...@@ -28,7 +28,6 @@ import ProgressBar from '@/app/components/base/progress-bar'
import { DataSourceType, type DocumentDisplayStatus, type SimpleDocumentDetail } from '@/models/datasets' import { DataSourceType, type DocumentDisplayStatus, type SimpleDocumentDetail } from '@/models/datasets'
import type { CommonResponse } from '@/models/common' import type { CommonResponse } from '@/models/common'
import { FilePlus02 } from '@/app/components/base/icons/src/vender/line/files' import { FilePlus02 } from '@/app/components/base/icons/src/vender/line/files'
import NewSegmentModal from '@/app/components/datasets/documents/detail/new-segment-modal'
export const SettingsIcon: FC<{ className?: string }> = ({ className }) => { export const SettingsIcon: FC<{ className?: string }> = ({ className }) => {
return <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" className={className ?? ''}> return <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" className={className ?? ''}>
...@@ -102,10 +101,10 @@ export const OperationAction: FC<{ ...@@ -102,10 +101,10 @@ export const OperationAction: FC<{
onUpdate: (operationName?: string) => void onUpdate: (operationName?: string) => void
scene?: 'list' | 'detail' scene?: 'list' | 'detail'
className?: string className?: string
}> = ({ datasetId, detail, onUpdate, scene = 'list', className = '' }) => { showNewSegmentModal?: () => void
const { id, enabled = false, archived = false, data_source_type, doc_form } = detail || {} }> = ({ datasetId, detail, onUpdate, scene = 'list', className = '', showNewSegmentModal }) => {
const { id, enabled = false, archived = false, data_source_type } = detail || {}
const [showModal, setShowModal] = useState(false) const [showModal, setShowModal] = useState(false)
const [showNewSegmentModal, setShowNewSegmentModal] = useState(false)
const { notify } = useContext(ToastContext) const { notify } = useContext(ToastContext)
const { t } = useTranslation() const { t } = useTranslation()
const router = useRouter() const router = useRouter()
...@@ -191,7 +190,7 @@ export const OperationAction: FC<{ ...@@ -191,7 +190,7 @@ export const OperationAction: FC<{
</div> </div>
{ {
!isListScene && ( !isListScene && (
<div className={s.actionItem} onClick={() => setShowNewSegmentModal(true)}> <div className={s.actionItem} onClick={showNewSegmentModal}>
<FilePlus02 className='w-4 h-4 text-gray-500' /> <FilePlus02 className='w-4 h-4 text-gray-500' />
<span className={s.actionName}>{t('datasetDocuments.list.action.add')}</span> <span className={s.actionName}>{t('datasetDocuments.list.action.add')}</span>
</div> </div>
...@@ -243,12 +242,6 @@ export const OperationAction: FC<{ ...@@ -243,12 +242,6 @@ export const OperationAction: FC<{
</div> </div>
</div> </div>
</Modal>} </Modal>}
<NewSegmentModal
isShow={showNewSegmentModal}
onCancel={() => setShowNewSegmentModal(false)}
docForm={doc_form}
onSave={() => {}}
/>
</div> </div>
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment