Merge pull request #23687 from overleaf/mj-expose-font-lineheight

[web] Expose font family and lineheight to extensions

GitOrigin-RevId: 75462fd5b062b70feb152fe5e805ff5ab80f5e64
This commit is contained in:
Mathias Jakobsen
2025-02-20 08:45:36 +00:00
committed by Copybot
parent 0d85fd775c
commit 8fdefdc2bd
2 changed files with 8 additions and 0 deletions

View File

@@ -31,6 +31,8 @@ export const IdeProvider: FC<{
* - `settings.theme`
* - `settings.keybindings`
* - `settings.fontSize`
* - `settings.fontFamily`
* - `settings.lineHeight`
*/
useEffect(() => {
window.overleaf = {

View File

@@ -12,6 +12,7 @@ import {
import { UserSettings, Keybindings } from '../../../../types/user-settings'
import getMeta from '@/utils/meta'
import useScopeValue from '@/shared/hooks/use-scope-value'
import { userStyles } from '../utils/styles'
const defaultSettings: UserSettings = {
pdfViewer: 'pdfjs',
@@ -39,6 +40,8 @@ type ScopeSettings = {
overallTheme: 'light' | 'dark'
keybindings: Keybindings
fontSize: number
fontFamily: string
lineHeight: number
}
export const UserSettingsContext = createContext<
@@ -53,9 +56,12 @@ export const UserSettingsProvider: FC = ({ children }) => {
// update the global scope 'settings' value, for extensions
const [, setScopeSettings] = useScopeValue<ScopeSettings>('settings')
useEffect(() => {
const { fontFamily, lineHeight } = userStyles(userSettings)
setScopeSettings({
overallTheme: userSettings.overallTheme === 'light-' ? 'light' : 'dark',
keybindings: userSettings.mode === 'none' ? 'default' : userSettings.mode,
fontFamily,
lineHeight,
fontSize: userSettings.fontSize,
})
}, [setScopeSettings, userSettings])