chore: remove the option to trigger transition from the UI (#2489)

This commit is contained in:
Karol Sójko
2023-09-12 09:25:05 +02:00
committed by GitHub
parent e50cc591c0
commit d6a3e69d8c
14 changed files with 1 additions and 251 deletions

View File

@@ -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 */

View File

@@ -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>
)
}

View File

@@ -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)
}