refactor(web): dependency management (#2386)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import RevisionContentLocked from './RevisionContentLocked'
|
||||
import { observer } from 'mobx-react-lite'
|
||||
import { NoteHistoryController, RevisionContentState } from '@/Controllers/NoteHistory/NoteHistoryController'
|
||||
import { NoteHistoryController } from '@/Controllers/NoteHistory/NoteHistoryController'
|
||||
import { RevisionContentState } from '@/Controllers/NoteHistory/Types'
|
||||
import Spinner from '@/Components/Spinner/Spinner'
|
||||
import { ReadonlyNoteContent } from '../NoteView/ReadonlyNoteContent'
|
||||
import { SNNote } from '@standardnotes/snjs'
|
||||
|
||||
@@ -11,14 +11,29 @@ import { HistoryModalMobileTab } from './utils'
|
||||
import MobileModalAction from '../Modal/MobileModalAction'
|
||||
import Popover from '../Popover/Popover'
|
||||
import MobileModalHeader from '../Modal/MobileModalHeader'
|
||||
import { useApplication } from '../ApplicationProvider'
|
||||
|
||||
const HistoryModalDialogContent = ({
|
||||
application,
|
||||
dismissModal,
|
||||
note,
|
||||
selectionController,
|
||||
}: RevisionHistoryModalContentProps) => {
|
||||
const [noteHistoryController] = useState(() => new NoteHistoryController(application, note, selectionController))
|
||||
const HistoryModalDialogContent = ({ dismissModal, note }: RevisionHistoryModalContentProps) => {
|
||||
const application = useApplication()
|
||||
|
||||
const [noteHistoryController] = useState(
|
||||
() =>
|
||||
new NoteHistoryController(
|
||||
note,
|
||||
application.itemListController,
|
||||
application.features,
|
||||
application.items,
|
||||
application.mutator,
|
||||
application.sync,
|
||||
application.actions,
|
||||
application.history,
|
||||
application.alerts,
|
||||
application.getRevision,
|
||||
application.listRevisions,
|
||||
application.deleteRevision,
|
||||
application.changeAndSaveItem,
|
||||
),
|
||||
)
|
||||
|
||||
const [selectedMobileTab, setSelectedMobileTab] = useState<HistoryModalMobileTab>('List')
|
||||
const tabOptionRef = useRef<HTMLButtonElement>(null)
|
||||
|
||||
@@ -6,15 +6,12 @@ import { RevisionHistoryModalProps } from './RevisionHistoryModalProps'
|
||||
import { useAndroidBackHandler } from '@/NativeMobileWeb/useAndroidBackHandler'
|
||||
import { useModalAnimation } from '../Modal/useModalAnimation'
|
||||
|
||||
const RevisionHistoryModal: FunctionComponent<RevisionHistoryModalProps> = ({
|
||||
application,
|
||||
historyModalController,
|
||||
selectionController,
|
||||
}) => {
|
||||
const RevisionHistoryModal: FunctionComponent<RevisionHistoryModalProps> = ({ application }) => {
|
||||
const addAndroidBackHandler = useAndroidBackHandler()
|
||||
|
||||
const isOpen = Boolean(
|
||||
historyModalController.note && application.isAuthorizedToRenderItem(historyModalController.note),
|
||||
application.historyModalController.note &&
|
||||
application.isAuthorizedToRenderItem(application.historyModalController.note),
|
||||
)
|
||||
|
||||
useEffect(() => {
|
||||
@@ -22,7 +19,7 @@ const RevisionHistoryModal: FunctionComponent<RevisionHistoryModalProps> = ({
|
||||
|
||||
if (isOpen) {
|
||||
removeListener = addAndroidBackHandler(() => {
|
||||
historyModalController.dismissModal()
|
||||
application.historyModalController.dismissModal()
|
||||
return true
|
||||
})
|
||||
}
|
||||
@@ -32,7 +29,7 @@ const RevisionHistoryModal: FunctionComponent<RevisionHistoryModalProps> = ({
|
||||
removeListener()
|
||||
}
|
||||
}
|
||||
}, [addAndroidBackHandler, historyModalController, isOpen])
|
||||
}, [addAndroidBackHandler, application, isOpen])
|
||||
|
||||
const [isMounted, setElement] = useModalAnimation(isOpen)
|
||||
|
||||
@@ -41,13 +38,12 @@ const RevisionHistoryModal: FunctionComponent<RevisionHistoryModalProps> = ({
|
||||
}
|
||||
|
||||
return (
|
||||
<HistoryModalDialog onDismiss={historyModalController.dismissModal} ref={setElement}>
|
||||
{!!historyModalController.note && (
|
||||
<HistoryModalDialog onDismiss={application.historyModalController.dismissModal} ref={setElement}>
|
||||
{!!application.historyModalController.note && (
|
||||
<HistoryModalDialogContent
|
||||
application={application}
|
||||
dismissModal={historyModalController.dismissModal}
|
||||
note={historyModalController.note}
|
||||
selectionController={selectionController}
|
||||
dismissModal={application.historyModalController.dismissModal}
|
||||
note={application.historyModalController.note}
|
||||
/>
|
||||
)}
|
||||
</HistoryModalDialog>
|
||||
|
||||
@@ -1,16 +1,11 @@
|
||||
import { WebApplication } from '@/Application/WebApplication'
|
||||
import { HistoryModalController } from '@/Controllers/NoteHistory/HistoryModalController'
|
||||
import { SelectedItemsController } from '@/Controllers/SelectedItemsController'
|
||||
import { SNNote } from '@standardnotes/snjs'
|
||||
|
||||
type CommonProps = {
|
||||
application: WebApplication
|
||||
selectionController: SelectedItemsController
|
||||
}
|
||||
|
||||
export type RevisionHistoryModalProps = CommonProps & {
|
||||
historyModalController: HistoryModalController
|
||||
}
|
||||
export type RevisionHistoryModalProps = CommonProps
|
||||
|
||||
export type RevisionHistoryModalContentProps = CommonProps & {
|
||||
note: SNNote
|
||||
|
||||
Reference in New Issue
Block a user