mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 06:03:45 +01:00
Merge pull request #36181 from overleaf/mj-offline-mode-feature
[web] Add offline mode to feature set GitOrigin-RevId: 93d2ed373af5b46f5ead924c14605775826c46e3
This commit is contained in:
committed by
Copybot
parent
42feabe643
commit
f7de42f1d3
@@ -154,6 +154,10 @@ export const UserSchema = new Schema(
|
||||
default: Settings.defaultFeatures.symbolPalette,
|
||||
},
|
||||
aiUsageQuota: { type: String, default: 'basic' },
|
||||
offlineMode: {
|
||||
type: Boolean,
|
||||
default: Settings.defaultFeatures.offlineMode,
|
||||
},
|
||||
},
|
||||
featuresOverrides: [
|
||||
{
|
||||
@@ -181,6 +185,7 @@ export const UserSchema = new Schema(
|
||||
zotero: { type: Boolean },
|
||||
referencesSearch: { type: Boolean },
|
||||
symbolPalette: { type: Boolean },
|
||||
offlineMode: { type: Boolean },
|
||||
},
|
||||
},
|
||||
],
|
||||
|
||||
@@ -435,6 +435,7 @@ module.exports = {
|
||||
compileGroup: 'standard',
|
||||
references: true,
|
||||
trackChanges: true,
|
||||
offlineMode: false,
|
||||
}),
|
||||
|
||||
// featuresEpoch: 'YYYY-MM-DD',
|
||||
|
||||
@@ -34,7 +34,7 @@ export const UnsavedDocsProvider: FC<React.PropsWithChildren> = ({
|
||||
const { permissionsLevel, setPermissionsLevel } = useIdeReactContext()
|
||||
const [isLocked, setIsLocked] = useState(false)
|
||||
const [unsavedDocs, setUnsavedDocs] = useState(new Map<string, number>())
|
||||
const isPremiumUser = Boolean(getMeta('ol-user')?.features?.versioning)
|
||||
const isPremiumUser = Boolean(getMeta('ol-user')?.features?.offlineMode)
|
||||
const intermittentConnectionImprovementsEnabled = useFeatureFlag(
|
||||
'intermittent-connection-improvements'
|
||||
)
|
||||
|
||||
@@ -116,6 +116,7 @@ module.exports = {
|
||||
trackChanges: false,
|
||||
symbolPalette: false,
|
||||
aiUsageQuota: 'basic',
|
||||
offlineMode: false,
|
||||
},
|
||||
personal: {
|
||||
collaborators: 1,
|
||||
@@ -133,6 +134,7 @@ module.exports = {
|
||||
trackChanges: false,
|
||||
symbolPalette: false,
|
||||
aiUsageQuota: 'basic',
|
||||
offlineMode: false,
|
||||
},
|
||||
collaborator: {
|
||||
collaborators: 10,
|
||||
@@ -150,6 +152,7 @@ module.exports = {
|
||||
trackChanges: true,
|
||||
symbolPalette: true,
|
||||
aiUsageQuota: 'basic',
|
||||
offlineMode: true,
|
||||
},
|
||||
professional: {
|
||||
collaborators: -1,
|
||||
@@ -167,6 +170,7 @@ module.exports = {
|
||||
trackChanges: true,
|
||||
symbolPalette: true,
|
||||
aiUsageQuota: 'basic',
|
||||
offlineMode: true,
|
||||
},
|
||||
}),
|
||||
|
||||
|
||||
@@ -44,10 +44,9 @@ function mount(
|
||||
intermittentConnectionImprovementsEnabled?: boolean
|
||||
} = {}
|
||||
) {
|
||||
// the provider reads getMeta('ol-user') to decide the lock threshold; the
|
||||
// `versioning` feature marks a premium user
|
||||
// the provider reads getMeta('ol-user') to decide the lock threshold
|
||||
window.metaAttributesCache.set('ol-user', {
|
||||
features: isPremiumUser ? { versioning: true } : {},
|
||||
features: isPremiumUser ? { offlineMode: true } : {},
|
||||
})
|
||||
// the provider reads the split test variant via useFeatureFlag
|
||||
window.metaAttributesCache.set('ol-splitTestVariants', {
|
||||
|
||||
@@ -18,6 +18,7 @@ const features = {
|
||||
compileGroup: 'priority',
|
||||
trackChanges: true,
|
||||
symbolPalette: true,
|
||||
offlineMode: true,
|
||||
},
|
||||
personal: {
|
||||
aiUsageQuota: 'basic',
|
||||
@@ -35,6 +36,7 @@ const features = {
|
||||
compileGroup: 'priority',
|
||||
trackChanges: false,
|
||||
symbolPalette: true,
|
||||
offlineMode: true,
|
||||
},
|
||||
collaborator: {
|
||||
aiUsageQuota: 'standard',
|
||||
@@ -52,6 +54,7 @@ const features = {
|
||||
compileGroup: 'priority',
|
||||
trackChanges: true,
|
||||
symbolPalette: true,
|
||||
offlineMode: true,
|
||||
},
|
||||
professional: {
|
||||
aiUsageQuota: 'unlimited',
|
||||
@@ -69,6 +72,7 @@ const features = {
|
||||
compileGroup: 'priority',
|
||||
trackChanges: true,
|
||||
symbolPalette: true,
|
||||
offlineMode: true,
|
||||
},
|
||||
} satisfies Record<string, Features>
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ describe('UserFeaturesUpdater', function () {
|
||||
zotero: true,
|
||||
mendeley: true,
|
||||
symbolPalette: true,
|
||||
offlineMode: true,
|
||||
}
|
||||
ctx.User = {
|
||||
findByIdAndUpdate: sinon.stub().returns({
|
||||
|
||||
@@ -9,6 +9,7 @@ export type Features = {
|
||||
gitBridge: boolean
|
||||
github: boolean
|
||||
mendeley: boolean
|
||||
offlineMode: boolean
|
||||
references: boolean
|
||||
referencesSearch: boolean
|
||||
symbolPalette: boolean
|
||||
|
||||
@@ -18,6 +18,7 @@ export type Features = {
|
||||
gitBridge?: boolean
|
||||
github?: boolean
|
||||
mendeley?: boolean
|
||||
offlineMode?: boolean
|
||||
papers?: boolean
|
||||
references?: boolean
|
||||
referencesSearch?: boolean
|
||||
|
||||
Reference in New Issue
Block a user