提升导出页面组件为公共组件。
This commit is contained in:
		| @@ -1,10 +1,9 @@ | |||||||
| import { useMemo, useState } from 'react'; | import { useMemo, useState } from 'react'; | ||||||
| import { HSegmentedControl } from '../../../components/HSegmentedControl'; | import { HSegmentedControl } from '../../components/HSegmentedControl'; | ||||||
| import { Labeled } from '../../../components/Labeled'; | import { Labeled } from '../../components/Labeled'; | ||||||
| import { ScrollArea } from '../../../components/ScrollArea'; | import { ScrollArea } from '../../components/ScrollArea'; | ||||||
| import { useCopy } from '../../../hooks/useCopy'; | import { useCopy } from '../../hooks/useCopy'; | ||||||
| import { Option, SchemeContent } from '../../../models'; | import { Option, SchemeContent, SchemeStorage } from '../../models'; | ||||||
| import { QSchemeStorage } from '../../../q-scheme'; |  | ||||||
| import styles from './Export.module.css'; | import styles from './Export.module.css'; | ||||||
| 
 | 
 | ||||||
| const exportOptions: Option[] = [ | const exportOptions: Option[] = [ | ||||||
| @@ -13,11 +12,11 @@ const exportOptions: Option[] = [ | |||||||
|   { label: 'Javascript Object', value: 'js_object' }, |   { label: 'Javascript Object', value: 'js_object' }, | ||||||
| ]; | ]; | ||||||
| 
 | 
 | ||||||
| type QSchemeExportProps = { | type SchemeExportProps = { | ||||||
|   scheme: SchemeContent<QSchemeStorage>; |   scheme: SchemeContent<SchemeStorage>; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| export function QSchemeExport({ scheme }: QSchemeExportProps) { | export function SchemeExport({ scheme }: SchemeExportProps) { | ||||||
|   const [activeExport, setActiveExport] = useState<Option['value']>(exportOptions[0].value); |   const [activeExport, setActiveExport] = useState<Option['value']>(exportOptions[0].value); | ||||||
|   const exportContent = useMemo(() => { |   const exportContent = useMemo(() => { | ||||||
|     switch (activeExport) { |     switch (activeExport) { | ||||||
| @@ -3,8 +3,8 @@ import { useState } from 'react'; | |||||||
| import { Tab } from '../../components/Tab'; | import { Tab } from '../../components/Tab'; | ||||||
| import { SchemeContent } from '../../models'; | import { SchemeContent } from '../../models'; | ||||||
| import { QSchemeStorage } from '../../q-scheme'; | import { QSchemeStorage } from '../../q-scheme'; | ||||||
|  | import { SchemeExport } from './Export'; | ||||||
| import { QSchemeBuilder } from './q-scheme/Builder'; | import { QSchemeBuilder } from './q-scheme/Builder'; | ||||||
| import { QSchemeExport } from './q-scheme/Export'; |  | ||||||
| import { QSchemePreview } from './q-scheme/Preview'; | import { QSchemePreview } from './q-scheme/Preview'; | ||||||
|  |  | ||||||
| const tabOptions = [ | const tabOptions = [ | ||||||
| @@ -29,7 +29,7 @@ export function QScheme({ scheme }: QSchemeProps) { | |||||||
|       {isEqual(activeTab, 'builder') && ( |       {isEqual(activeTab, 'builder') && ( | ||||||
|         <QSchemeBuilder scheme={scheme} onBuildCompleted={() => setActiveTab('overview')} /> |         <QSchemeBuilder scheme={scheme} onBuildCompleted={() => setActiveTab('overview')} /> | ||||||
|       )} |       )} | ||||||
|       {isEqual(activeTab, 'export') && <QSchemeExport scheme={scheme} />} |       {isEqual(activeTab, 'export') && <SchemeExport scheme={scheme} />} | ||||||
|     </> |     </> | ||||||
|   ); |   ); | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user