diff --git a/src/renderer/widgets/webpage/settings.tsx b/src/renderer/widgets/webpage/settings.tsx index 4ed4e50..9434d35 100644 --- a/src/renderer/widgets/webpage/settings.tsx +++ b/src/renderer/widgets/webpage/settings.tsx @@ -43,6 +43,7 @@ export interface Settings { injectedCSS: string; injectedJS: string; userAgent: string; + zoom: number; } export const createSettingsState: CreateSettingsState = (settings) => ({ @@ -53,6 +54,7 @@ export const createSettingsState: CreateSettingsState = (settings) => injectedCSS: typeof settings.injectedCSS === 'string' ? settings.injectedCSS : '', injectedJS: typeof settings.injectedJS === 'string' ? settings.injectedJS : '', userAgent: typeof settings.userAgent === 'string' ? settings.userAgent : '', + zoom: typeof settings.zoom === 'number' ? settings.zoom : 100, }) const debounceUpdate3s = debounce((fn: () => void) => fn(), 3000); @@ -192,6 +194,14 @@ export function SettingsEditorComp({settings, settingsApi}: SettingsEditorReactC > updateUserAgent(e.target.value, true)} onBlur={e=>updateUserAgent(e.target.value, false)} placeholder="Type User Agent string" /> + + + updateSettings({...settings, zoom: +e.target.value})} min="50" max="300" step="10" /> % + ) } diff --git a/src/renderer/widgets/webpage/widget.tsx b/src/renderer/widgets/webpage/widget.tsx index 9af7770..93bcf57 100644 --- a/src/renderer/widgets/webpage/widget.tsx +++ b/src/renderer/widgets/webpage/widget.tsx @@ -24,7 +24,7 @@ interface WebviewProps extends WidgetReactComponentProps { } function Webview({settings, widgetApi, onRequireRestart, env, id}: WebviewProps) { - const {url, sessionScope, sessionPersist, autoReload, injectedCSS, injectedJS, userAgent} = settings; + const {url, sessionScope, sessionPersist, autoReload, injectedCSS, injectedJS, userAgent, zoom} = settings; const partition = useMemo(() => createPartition(sessionPersist, sessionScope, env, id), [ env, id, sessionScope, sessionPersist @@ -170,7 +170,9 @@ function Webview({settings, widgetApi, onRequireRestart, env, id}: WebviewProps) if (injectedJS) { webviewEl.executeJavaScript(injectedJS); } - // webviewEl.classList.add('is-bg-visible'); + if (zoom) { + webviewEl.setZoomFactor(zoom / 100); + } } const handleDidFinishLoad = () => { refreshActions();