| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import { useMemo } from 'react'
- import { useTranslation } from 'react-i18next'
- import isValidTeXFile from '../../../../main/is-valid-tex-file'
- import { useEditorContext } from '../../../../shared/context/editor-context'
- import { useProjectSettingsContext } from '../../context/project-settings-context'
- import SettingsMenuSelect from './settings-menu-select'
- import type { Option } from './settings-menu-select'
- import { useFileTreeData } from '@/shared/context/file-tree-data-context'
- export default function SettingsDocument() {
- const { t } = useTranslation()
- const { permissionsLevel } = useEditorContext()
- const { docs } = useFileTreeData()
- const { rootDocId, setRootDocId } = useProjectSettingsContext()
- const validDocsOptions = useMemo(() => {
- const filteredDocs =
- docs?.filter(
- doc => isValidTeXFile(doc.doc.name) || rootDocId === doc.doc.id
- ) ?? []
- const mappedDocs: Array<Option> = filteredDocs.map(doc => ({
- value: doc.doc.id,
- label: doc.path,
- }))
- return mappedDocs
- }, [docs, rootDocId])
- if (permissionsLevel === 'readOnly') {
- return null
- }
- return (
- <SettingsMenuSelect
- onChange={setRootDocId}
- value={rootDocId}
- options={validDocsOptions}
- label={t('main_document')}
- name="rootDocId"
- />
- )
- }
|