> }) {
+ const [ codeNotesMimeTypes ] = useTriliumOption("codeNotesMimeTypes");
+ const noteTypes = useMemo(() => NOTE_TYPES.filter((nt) => !nt.reserved && !nt.static), []);
+ const mimeTypes = useMemo(() => {
+ mime_types.loadMimeTypes();
+ return mime_types.getMimeTypes().filter(mimeType => mimeType.enabled);
+ }, [ codeNotesMimeTypes ]);
const changeNoteType = useCallback(async (type: NoteType, mime?: string) => {
if (!note || (type === currentNoteType && mime === currentNoteMime)) {
return;
@@ -68,71 +91,68 @@ function NoteTypeWidget({ note }: { note?: FNote | null }) {
}, [ note, currentNoteType, currentNoteMime ]);
return (
-
- {t("basic_properties.note_type")}:
- {findTypeTitle(currentNoteType, currentNoteMime)}}
- disabled={notSelectableNoteTypes.includes(currentNoteType ?? "text")}
- >
- {noteTypes.map(({ isNew, isBeta, type, mime, title }) => {
- const badges: FormListBadge[] = [];
- if (isNew) {
- badges.push({
- className: "new-note-type-badge",
- text: t("note_types.new-feature")
- });
- }
- if (isBeta) {
- badges.push({
- text: t("note_types.beta-feature")
- });
- }
+ <>
+ {noteTypes.map(({ isNew, isBeta, type, mime, title }) => {
+ const badges: FormListBadge[] = [];
+ if (isNew) {
+ badges.push({
+ className: "new-note-type-badge",
+ text: t("note_types.new-feature")
+ });
+ }
+ if (isBeta) {
+ badges.push({
+ text: t("note_types.beta-feature")
+ });
+ }
- const checked = (type === currentNoteType);
- if (type !== "code") {
- return (
+ const checked = (type === currentNoteType);
+ if (type !== "code") {
+ return (
+ changeNoteType(type, mime)}
+ >{title}
+ );
+ } else {
+ return (
+ <>
+
changeNoteType(type, mime)}
- >{title}
- );
- } else {
- return (
- <>
-
-
- {title}
-
- >
- )
- }
- })}
+ disabled
+ >
+ {title}
+
+ >
+ );
+ }
+ })}
- {mimeTypes.map(({ title, mime }) => (
- changeNoteType("code", mime)}>
- {title}
-
- ))}
+ {mimeTypes.map(({ title, mime }) => (
+ changeNoteType("code", mime)}>
+ {title}
+
+ ))}
-
- setModalShown(true)}>{t("basic_properties.configure_code_notes")}
-
+
+ setModalShown(true)}>{t("basic_properties.configure_code_notes")}
+ >
+ );
+}
- setModalShown(false)}
- size="xl" scrollable
- >
-
-
-
- )
+function NoteTypeOptionsModal({ modalShown, setModalShown }: { modalShown: boolean, setModalShown: (shown: boolean) => void }) {
+ return (
+ setModalShown(false)}
+ size="xl" scrollable
+ >
+
+
+ );
}
function ProtectedNoteSwitch({ note }: { note?: FNote | null }) {
@@ -187,22 +207,11 @@ function EditabilitySelect({ note }: { note?: FNote | null }) {
}}
/>