Bladeren bron

Merge pull request #34750 from overleaf/dp-cleanup-reference-settings-migration

[web] Remove reference manager settings migration code

GitOrigin-RevId: 1062e1f08a6e6d4547f48c965c342d2ac15e9a4f
David 1 maand geleden
bovenliggende
commit
d6e55f81ff

+ 0 - 1
services/web/app/src/Features/User/UserController.mjs

@@ -338,7 +338,6 @@ const refProviderSettingsSchema = z
     enabled: z.boolean().optional(),
     groups: z.array(z.object({ id: z.string() })).optional(),
     disablePersonalLibrary: z.boolean().optional(),
-    migrated: z.boolean().optional(),
   })
   .optional()
 

+ 0 - 1
services/web/app/src/models/User.mjs

@@ -18,7 +18,6 @@ const refProviderSettingsSchema = {
     default: [],
   },
   disablePersonalLibrary: { type: Boolean, default: false },
-  migrated: { type: Boolean, default: false },
 }
 
 export const UserSchema = new Schema(

+ 3 - 3
services/web/frontend/js/features/editor-left-menu/hooks/use-user-wide-settings.tsx

@@ -162,21 +162,21 @@ export default function useUserWideSettings() {
 
   const setZotero = useCallback(
     (zotero: UserSettings['zotero']) => {
-      saveUserSettings('zotero', { ...zotero, migrated: true })
+      saveUserSettings('zotero', zotero)
     },
     [saveUserSettings]
   )
 
   const setMendeley = useCallback(
     (mendeley: UserSettings['mendeley']) => {
-      saveUserSettings('mendeley', { ...mendeley, migrated: true })
+      saveUserSettings('mendeley', mendeley)
     },
     [saveUserSettings]
   )
 
   const setPapers = useCallback(
     (papers: UserSettings['papers']) => {
-      saveUserSettings('papers', { ...papers, migrated: true })
+      saveUserSettings('papers', papers)
     },
     [saveUserSettings]
   )

+ 0 - 29
services/web/frontend/js/shared/context/user-settings-context.tsx

@@ -6,13 +6,9 @@ import {
   SetStateAction,
   FC,
   useState,
-  useEffect,
 } from 'react'
 import { UserSettings } from '../../../../types/user-settings'
 import getMeta from '@/utils/meta'
-import customLocalStorage from '@/infrastructure/local-storage'
-import { getLegacyWriteAndCiteMigration } from '../utils/write-and-cite-settings-migration'
-import { saveUserSettings } from '@/features/editor-left-menu/utils/api'
 
 export const defaultSettings: UserSettings = {
   pdfViewer: 'pdfjs',
@@ -70,31 +66,6 @@ export const UserSettingsProvider: FC<React.PropsWithChildren> = ({
     () => getMeta('ol-userSettings') || defaultSettings
   )
 
-  useEffect(() => {
-    const { patch, keysToRemove } = getLegacyWriteAndCiteMigration(userSettings)
-    if (Object.keys(patch).length === 0) {
-      keysToRemove.forEach(customLocalStorage.removeItem)
-      return
-    }
-
-    Promise.all(
-      Object.entries(patch).map(([key, value]) =>
-        saveUserSettings(
-          key as keyof Pick<UserSettings, 'mendeley' | 'zotero' | 'papers'>,
-          value
-        )
-      )
-    ).then(() => {
-      setUserSettings(currentSettings => ({
-        ...currentSettings,
-        ...patch,
-      }))
-      keysToRemove.forEach(customLocalStorage.removeItem)
-    })
-    // Only run once when the provider mounts
-    // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, [])
-
   const value = useMemo<UserSettingsContextValue>(
     () => ({
       userSettings,

+ 0 - 99
services/web/frontend/js/shared/utils/write-and-cite-settings-migration.ts

@@ -1,99 +0,0 @@
-import customLocalStorage from '@/infrastructure/local-storage'
-import getMeta from '@/utils/meta'
-import {
-  RefProviderSettings,
-  UserSettings,
-} from '../../../../types/user-settings'
-
-type RefProvider = 'mendeley' | 'zotero' | 'papers'
-
-const providers: RefProvider[] = ['mendeley', 'zotero', 'papers']
-
-const buildLegacyKey = (userId: string, provider: RefProvider, key: string) =>
-  `user.${userId}.write-and-cite.${provider}.${key}`
-
-const isBoolean = (value: unknown): value is boolean =>
-  typeof value === 'boolean'
-
-const parseGroups = (value: unknown): { id: string }[] | undefined => {
-  return Array.isArray(value)
-    ? (value as { id: string | number }[]).map(group => ({
-        id: typeof group.id === 'number' ? String(group.id) : group.id,
-      }))
-    : undefined
-}
-
-export type LegacyWriteAndCiteMigration = {
-  patch: Partial<Pick<UserSettings, 'mendeley' | 'zotero' | 'papers'>>
-  keysToRemove: string[]
-}
-
-export const getLegacyWriteAndCiteMigration = (
-  userSettings: UserSettings
-): LegacyWriteAndCiteMigration => {
-  const userId = getMeta('ol-user_id')
-  if (!userId) {
-    return {
-      patch: {},
-      keysToRemove: [],
-    }
-  }
-
-  const patch: LegacyWriteAndCiteMigration['patch'] = {}
-  const keysToRemove: string[] = []
-
-  for (const provider of providers) {
-    const currentProviderSettings = userSettings[provider]
-
-    if (currentProviderSettings.migrated) {
-      continue
-    }
-
-    const enabledKey = buildLegacyKey(userId, provider, 'enabled')
-    const groupsKey = buildLegacyKey(userId, provider, 'groups')
-    const disablePersonalLibraryKey = buildLegacyKey(
-      userId,
-      provider,
-      'disablePersonalLibrary'
-    )
-
-    const enabledValue = customLocalStorage.getItem(enabledKey)
-    const groupsValue = customLocalStorage.getItem(groupsKey)
-    const disablePersonalLibraryValue = customLocalStorage.getItem(
-      disablePersonalLibraryKey
-    )
-
-    // Storage.getItem returns null if the key does not exist
-    const hasEnabledValue = enabledValue !== null
-    const hasGroupsValue = groupsValue !== null
-    const hasDisablePersonalLibraryValue = disablePersonalLibraryValue !== null
-
-    if (
-      !hasEnabledValue &&
-      !hasGroupsValue &&
-      !hasDisablePersonalLibraryValue
-    ) {
-      continue
-    }
-
-    const nextProviderSettings: RefProviderSettings = {
-      enabled: isBoolean(enabledValue)
-        ? enabledValue
-        : currentProviderSettings.enabled,
-      groups: parseGroups(groupsValue) ?? currentProviderSettings.groups,
-      disablePersonalLibrary: isBoolean(disablePersonalLibraryValue)
-        ? disablePersonalLibraryValue
-        : currentProviderSettings.disablePersonalLibrary,
-      migrated: true,
-    }
-
-    patch[provider] = nextProviderSettings
-
-    keysToRemove.push(enabledKey, groupsKey, disablePersonalLibraryKey)
-  }
-
-  return {
-    patch,
-    keysToRemove: [],
-  }
-}

+ 0 - 1
services/web/types/user-settings.ts

@@ -7,7 +7,6 @@ export type RefProviderSettings = {
   enabled: boolean
   disablePersonalLibrary: boolean
   groups: { id: string }[]
-  migrated?: boolean
 }
 
 export type UserSettings = {