diff --git a/packages/react/components/Editor/components/views/LogView.mjs b/packages/react/components/Editor/components/views/LogView.mjs new file mode 100644 index 00000000000..de5f4f130e3 --- /dev/null +++ b/packages/react/components/Editor/components/views/LogView.mjs @@ -0,0 +1,66 @@ +// Dependencies +import { linkClasses, horFlexClasses, patternUrlFromState } from '@freesewing/utils' +import { exportTypes, handleExport } from '../../lib/export/index.mjs' +import { draft } from '../../lib/index.mjs' +// Hooks +import React, { useState } from 'react' +// Components +import Markdown from 'react-markdown' +import { H1, H3 } from '@freesewing/react/components/Heading' +import { HeaderMenu } from '../HeaderMenu.mjs' +import { Tabs, Tab } from '@freesewing/react/components/Tab' + +// The log levels +const levels = ['error', 'warn', 'info', 'debug'] + +/** + * This is the log view, it shows the pattern logs + * + * @param {Object} props - All the props + * @param {Function} props.config - The editor configuration + * @param {Object} props.state - The editor state object + * @param {Object} props.update - Helper object for updating the editor state + */ +export const LogView = (props) => { + const { state, config, update } = props + const { pattern } = draft(props.Design, state.settings) + + return ( + <> + +
+

Pattern Logs

+ + + {levels.map((level) => ( +
+ {pattern.setStores[0].logs[level].length > 0 ? ( + <> +

{level}

+ {pattern.setStores[0].logs[level].map((line, i) => ( + {line} + ))} + + ) : null} +
+ ))} +
+ + {levels.map((level) => ( +
+ {pattern.store.logs[level].length > 0 ? ( + <> +

{level}

+ {pattern.store.logs[level].map((line, i) => ( + {line} + ))} + + ) : null} +
+ ))} +
+
+
+ + ) +} diff --git a/packages/react/components/Editor/components/views/index.mjs b/packages/react/components/Editor/components/views/index.mjs index 3affd539885..0f6f211d552 100644 --- a/packages/react/components/Editor/components/views/index.mjs +++ b/packages/react/components/Editor/components/views/index.mjs @@ -9,6 +9,7 @@ import { ExportView } from './ExportView.mjs' import { UndosView } from './UndosView.mjs' import { LayoutView } from './LayoutView.mjs' import { DocsView } from './DocsView.mjs' +import { LogView } from './LogView.mjs' import { EditSettingsView } from './EditSettingsView.mjs' import { ErrorIcon } from '@freesewing/react/components/Icon' import { @@ -65,6 +66,7 @@ export const View = (props) => { if (view === 'docs') return if (view === 'editSettings') return if (view === 'inspect') return + if (view === 'logs') return return

No view component for view {props.view}

}