提升导出页面组件为公共组件。

This commit is contained in:
徐涛 2025-02-07 22:22:03 +08:00
parent 83dcb3f80f
commit 6728ca1be2
3 changed files with 10 additions and 11 deletions

View File

@ -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) {

View File

@ -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} />}
</> </>
); );
} }