chore: remove the option to trigger transition from the UI (#2489)
This commit is contained in:
@@ -5,7 +5,6 @@ export class DevMode {
|
||||
constructor(private application: WebApplicationInterface) {
|
||||
InternalFeatureService.get().enableFeature(InternalFeature.Vaults)
|
||||
InternalFeatureService.get().enableFeature(InternalFeature.HomeServer)
|
||||
InternalFeatureService.get().enableFeature(InternalFeature.Transition)
|
||||
}
|
||||
|
||||
/** Valid only when running a mock event publisher on port 3124 */
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { FunctionComponent, useCallback, useEffect, useState } from 'react'
|
||||
import { FunctionComponent, useState } from 'react'
|
||||
import { observer } from 'mobx-react-lite'
|
||||
|
||||
import { Text, Title } from '@/Components/Preferences/PreferencesComponents/Content'
|
||||
@@ -9,83 +9,15 @@ import { WebApplication } from '@/Application/WebApplication'
|
||||
import { formatLastSyncDate } from '@/Utils/DateUtils'
|
||||
import PreferencesGroup from '../../PreferencesComponents/PreferencesGroup'
|
||||
import PreferencesSegment from '../../PreferencesComponents/PreferencesSegment'
|
||||
import HorizontalSeparator from '@/Components/Shared/HorizontalSeparator'
|
||||
import { featureTrunkTransitionEnabled } from '@/FeatureTrunk'
|
||||
|
||||
type Props = {
|
||||
application: WebApplication
|
||||
}
|
||||
|
||||
const Sync: FunctionComponent<Props> = ({ application }: Props) => {
|
||||
const TRANSITION_STATUS_REFRESH_INTERVAL = 5000
|
||||
|
||||
const [isSyncingInProgress, setIsSyncingInProgress] = useState(false)
|
||||
const [isTransitionInProgress, setIsTransitionInProgress] = useState(false)
|
||||
const [showTransitionSegment, setShowTransitionSegment] = useState(false)
|
||||
const [transitionStatus, setTransitionStatus] = useState('')
|
||||
const [transitionStatusIntervalRef, setTransitionStatusIntervalRef] = useState<NodeJS.Timer | null>(null)
|
||||
const [lastSyncDate, setLastSyncDate] = useState(formatLastSyncDate(application.sync.getLastSyncDate() as Date))
|
||||
|
||||
const setupTransitionStatusRefresh = useCallback(async () => {
|
||||
const interval = setInterval(async () => {
|
||||
const statusOrError = await application.getTransitionStatus.execute()
|
||||
if (statusOrError.isFailed()) {
|
||||
await application.alerts.alert(statusOrError.getError())
|
||||
return
|
||||
}
|
||||
const status = statusOrError.getValue()
|
||||
|
||||
setTransitionStatus(status)
|
||||
}, TRANSITION_STATUS_REFRESH_INTERVAL)
|
||||
|
||||
setTransitionStatusIntervalRef(interval)
|
||||
}, [application, setTransitionStatus, setTransitionStatusIntervalRef])
|
||||
|
||||
useEffect(() => {
|
||||
if (!featureTrunkTransitionEnabled()) {
|
||||
return
|
||||
}
|
||||
|
||||
async function checkTransitionStatus() {
|
||||
const statusOrError = await application.getTransitionStatus.execute()
|
||||
if (statusOrError.isFailed()) {
|
||||
await application.alerts.alert(statusOrError.getError())
|
||||
return
|
||||
}
|
||||
const status = statusOrError.getValue()
|
||||
|
||||
if (status === 'FINISHED') {
|
||||
if (transitionStatusIntervalRef) {
|
||||
clearInterval(transitionStatusIntervalRef)
|
||||
}
|
||||
setIsTransitionInProgress(false)
|
||||
setTransitionStatus(status)
|
||||
setShowTransitionSegment(false)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
setShowTransitionSegment(true)
|
||||
setTransitionStatus(status)
|
||||
|
||||
if (status === 'STARTED') {
|
||||
setIsTransitionInProgress(true)
|
||||
if (!transitionStatusIntervalRef) {
|
||||
await setupTransitionStatusRefresh()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void checkTransitionStatus()
|
||||
}, [
|
||||
application,
|
||||
setIsTransitionInProgress,
|
||||
setTransitionStatus,
|
||||
setShowTransitionSegment,
|
||||
setupTransitionStatusRefresh,
|
||||
transitionStatusIntervalRef,
|
||||
])
|
||||
|
||||
const doSynchronization = async () => {
|
||||
setIsSyncingInProgress(true)
|
||||
|
||||
@@ -101,19 +33,6 @@ const Sync: FunctionComponent<Props> = ({ application }: Props) => {
|
||||
}
|
||||
}
|
||||
|
||||
const doTransition = useCallback(async () => {
|
||||
const resultOrError = await application.startTransition.execute()
|
||||
if (resultOrError.isFailed()) {
|
||||
await application.alerts.alert(resultOrError.getError())
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
setIsTransitionInProgress(true)
|
||||
|
||||
await setupTransitionStatusRefresh()
|
||||
}, [application, setupTransitionStatusRefresh])
|
||||
|
||||
return (
|
||||
<PreferencesGroup>
|
||||
<PreferencesSegment>
|
||||
@@ -132,35 +51,6 @@ const Sync: FunctionComponent<Props> = ({ application }: Props) => {
|
||||
</div>
|
||||
</div>
|
||||
</PreferencesSegment>
|
||||
{showTransitionSegment && (
|
||||
<>
|
||||
<HorizontalSeparator classes="my-4" />
|
||||
<PreferencesSegment>
|
||||
<div className="flex flex-row items-center">
|
||||
<div className="flex flex-grow flex-col">
|
||||
<Title>Transition Account</Title>
|
||||
<Text>
|
||||
Transition your account to our new infrastructure in order to enable new features and improve your
|
||||
overall experience. Depending on the amount of data you have, this process may take a few moments.
|
||||
</Text>
|
||||
{isTransitionInProgress && (
|
||||
<Text>
|
||||
<span className="font-bold">Transition status:</span> {transitionStatus}
|
||||
</Text>
|
||||
)}
|
||||
{!isTransitionInProgress && (
|
||||
<Button
|
||||
className="mt-3 min-w-20"
|
||||
label="Start transition"
|
||||
disabled={isTransitionInProgress}
|
||||
onClick={doTransition}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</PreferencesSegment>
|
||||
</>
|
||||
)}
|
||||
</PreferencesGroup>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -15,7 +15,3 @@ export function featureTrunkVaultsEnabled(): boolean {
|
||||
export function featureTrunkHomeServerEnabled(): boolean {
|
||||
return InternalFeatureService.get().isFeatureEnabled(InternalFeature.HomeServer)
|
||||
}
|
||||
|
||||
export function featureTrunkTransitionEnabled(): boolean {
|
||||
return InternalFeatureService.get().isFeatureEnabled(InternalFeature.Transition)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user