refactor: importer service (#2674)

This commit is contained in:
Aman Harwara
2023-12-05 02:55:32 +05:30
committed by GitHub
parent 9265e7afe9
commit 85ecb10924
17 changed files with 509 additions and 518 deletions

View File

@@ -13,7 +13,6 @@ import ItemSelectionDropdown from '../ItemSelectionDropdown/ItemSelectionDropdow
import { ContentType, SNTag } from '@standardnotes/snjs'
import Button from '../Button/Button'
import { ClassicFileReader } from '@standardnotes/filepicker'
import { NoteImportType } from '@standardnotes/ui-services'
const ImportModal = ({ importModalController }: { importModalController: ImportModalController }) => {
const application = useApplication()
@@ -60,7 +59,7 @@ const ImportModal = ({ importModalController }: { importModalController: ImportM
)
const selectFiles = useCallback(
async (service?: NoteImportType) => {
async (service?: string) => {
const files = await ClassicFileReader.selectFiles()
addFiles(files, service)

View File

@@ -9,7 +9,7 @@ import {
PreferencesServiceEvent,
UuidGenerator,
} from '@standardnotes/snjs'
import { Importer, NoteImportType } from '@standardnotes/ui-services'
import { Importer } from '@standardnotes/ui-services'
import { action, makeObservable, observable, runInAction } from 'mobx'
import { NavigationController } from '../../Controllers/Navigation/NavigationController'
import { LinkingController } from '@/Controllers/LinkingController'
@@ -18,7 +18,7 @@ import { AbstractViewController } from '@/Controllers/Abstract/AbstractViewContr
type ImportModalFileCommon = {
id: string
file: File
service: NoteImportType | null | undefined
service: string | null | undefined
}
export type ImportModalFile = (
@@ -107,7 +107,7 @@ export class ImportModalController extends AbstractViewController {
this.preferences.setValue(PrefKey.ExistingTagForImports, tag?.uuid).catch(console.error)
}
getImportFromFile = (file: File, service?: NoteImportType) => {
getImportFromFile = (file: File, service?: string) => {
return {
id: UuidGenerator.GenerateUuid(),
file,
@@ -116,11 +116,11 @@ export class ImportModalController extends AbstractViewController {
} as ImportModalFile
}
setFiles = (files: File[], service?: NoteImportType) => {
setFiles = (files: File[], service?: string) => {
this.files = files.map((file) => this.getImportFromFile(file, service))
}
addFiles = (files: File[], service?: NoteImportType) => {
addFiles = (files: File[], service?: string) => {
this.files = [...this.files, ...files.map((file) => this.getImportFromFile(file, service))]
}

View File

@@ -1,11 +1,11 @@
import { ImportModalController, ImportModalFile } from '@/Components/ImportModal/ImportModalController'
import { classNames, ContentType, pluralize } from '@standardnotes/snjs'
import { Importer, NoteImportType } from '@standardnotes/ui-services'
import { Importer } from '@standardnotes/ui-services'
import { observer } from 'mobx-react-lite'
import { useCallback, useEffect, useState } from 'react'
import Icon from '../Icon/Icon'
const NoteImportTypeColors: Record<NoteImportType, string> = {
const NoteImportTypeColors: Record<string, string> = {
evernote: 'bg-[#14cc45] text-[#000]',
simplenote: 'bg-[#3360cc] text-default',
'google-keep': 'bg-[#fbbd00] text-[#000]',
@@ -15,7 +15,7 @@ const NoteImportTypeColors: Record<NoteImportType, string> = {
super: 'bg-accessory-tint-1 text-accessory-tint-1',
}
const NoteImportTypeIcons: Record<NoteImportType, string> = {
const NoteImportTypeIcons: Record<string, string> = {
evernote: 'evernote',
simplenote: 'simplenote',
'google-keep': 'gkeep',
@@ -39,7 +39,7 @@ const ImportModalFileItem = ({
const [changingService, setChangingService] = useState(false)
const setFileService = useCallback(
async (service: NoteImportType | null) => {
async (service: string | null) => {
if (!service) {
setChangingService(true)
}
@@ -116,7 +116,7 @@ const ImportModalFileItem = ({
event.preventDefault()
const form = event.target as HTMLFormElement
const service = form.elements[0] as HTMLSelectElement
void setFileService(service.value as NoteImportType)
void setFileService(service.value)
setChangingService(false)
}}
>

View File

@@ -5,11 +5,10 @@ import Icon from '../Icon/Icon'
import { useApplication } from '../ApplicationProvider'
import { FeatureName } from '@/Controllers/FeatureName'
import { NativeFeatureIdentifier, FeatureStatus } from '@standardnotes/snjs'
import { NoteImportType } from '@standardnotes/ui-services'
type Props = {
setFiles: ImportModalController['setFiles']
selectFiles: (service?: NoteImportType) => Promise<void>
selectFiles: (service?: string) => Promise<void>
}
const ImportModalInitialPage = ({ setFiles, selectFiles }: Props) => {