mirror of
https://github.com/bitwarden/browser
synced 2026-01-08 03:23:50 +00:00
* Passkey stuff Co-authored-by: Anders Åberg <github@andersaberg.com> * Ugly hacks * Work On Modal State Management * Applying modalStyles * modal * Improved hide/show * fixed promise * File name * fix prettier * Protecting against null API's and undefined data * Only show fake popup to devs * cleanup mock code * rename minmimal-app to modal-app * Added comment * Added comment * removed old comment * Avoided changing minimum size * Add small comment * Rename component * adress feedback * Fixed uppercase file * Fixed build * Added codeowners * added void * commentary * feat: reset setting on app start * Moved reset to be in main / process launch * Add comment to create window * Added a little bit of styling * Use Messaging service to loadUrl * Enable passkeysautofill * Add logging * halfbaked * Integration working * And now it works without extra delay * Clean up * add note about messaging * lb * removed console.logs * Cleanup and adress review feedback * This hides the swift UI * pick credential, draft * Remove logger * a whole lot of wiring * not working * Improved wiring * Cancel after 90s * Introduced observable * Launching bitwarden if its not running * Passing position from native to electron * Rename inModalMode to modalMode * remove tap * revert spaces * added back isDev * cleaned up a bit * Cleanup swift file * tweaked logging * clean up * Update apps/desktop/macos/autofill-extension/CredentialProviderViewController.swift Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com> * Update apps/desktop/src/platform/main/autofill/native-autofill.main.ts Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com> * Update apps/desktop/src/platform/services/desktop-settings.service.ts Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com> * adress position feedback * Update apps/desktop/macos/autofill-extension/CredentialProviderViewController.swift Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com> * Removed extra logging * Adjusted error logging * Use .error to log errors * remove dead code * Update desktop-autofill.service.ts * use parseCredentialId instead of guidToRawFormat * Update apps/desktop/src/autofill/services/desktop-autofill.service.ts Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com> * Change windowXy to a Record instead of [number,number] * Update apps/desktop/src/autofill/services/desktop-fido2-user-interface.service.ts Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com> * Remove unsued dep and comment * changed timeout to be spec recommended maxium, 10 minutes, for now. * Correctly assume UP * Removed extra cancelRequest in deinint * Add timeout and UV to confirmChoseCipher UV is performed by UI, not the service * Improved docs regarding undefined cipherId * cleanup: UP is no longer undefined * Run completeError if ipc messages conversion failed * don't throw, instead return undefined * Disabled passkey provider * Throw error if no activeUserId was found * removed comment * Fixed lint * removed unsued service * reset entitlement formatting * Update entitlements.mas.plist --------- Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com> Co-authored-by: Colton Hurst <colton@coltonhurst.com> Co-authored-by: Andreas Coroiu <andreas.coroiu@gmail.com> Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>
67 lines
2.0 KiB
TypeScript
67 lines
2.0 KiB
TypeScript
import { BrowserWindow } from "electron";
|
|
|
|
import { WindowState } from "./models/domain/window-state";
|
|
|
|
// change as needed, however limited by mainwindow minimum size
|
|
const popupWidth = 680;
|
|
const popupHeight = 500;
|
|
|
|
type Position = { x: number; y: number };
|
|
|
|
export function applyPopupModalStyles(window: BrowserWindow, position?: Position) {
|
|
window.unmaximize();
|
|
window.setSize(popupWidth, popupHeight);
|
|
window.setWindowButtonVisibility?.(false);
|
|
window.setMenuBarVisibility?.(false);
|
|
window.setResizable(false);
|
|
window.setAlwaysOnTop(true);
|
|
|
|
// Adjusting from full screen is a bit more hassle
|
|
if (window.isFullScreen()) {
|
|
window.setFullScreen(false);
|
|
window.once("leave-full-screen", () => {
|
|
window.setSize(popupWidth, popupHeight);
|
|
positionWindow(window, position);
|
|
});
|
|
} else {
|
|
// If not in full screen
|
|
positionWindow(window, position);
|
|
}
|
|
}
|
|
|
|
function positionWindow(window: BrowserWindow, position?: Position) {
|
|
if (position) {
|
|
const centeredX = position.x - popupWidth / 2;
|
|
const centeredY = position.y - popupHeight / 2;
|
|
window.setPosition(centeredX, centeredY);
|
|
} else {
|
|
window.center();
|
|
}
|
|
}
|
|
|
|
export function applyMainWindowStyles(window: BrowserWindow, existingWindowState: WindowState) {
|
|
window.setMinimumSize(680, 500);
|
|
|
|
// need to guard against null/undefined values
|
|
|
|
if (existingWindowState?.width && existingWindowState?.height) {
|
|
window.setSize(existingWindowState.width, existingWindowState.height);
|
|
}
|
|
|
|
if (existingWindowState?.x && existingWindowState?.y) {
|
|
window.setPosition(existingWindowState.x, existingWindowState.y);
|
|
}
|
|
|
|
window.setWindowButtonVisibility?.(true);
|
|
window.setMenuBarVisibility?.(true);
|
|
window.setResizable(true);
|
|
window.setAlwaysOnTop(false);
|
|
|
|
// We're currently not recovering the maximized state, mostly due to conflicts with hiding the window.
|
|
// window.setFullScreen(existingWindowState.isMaximized);
|
|
|
|
// if (existingWindowState.isMaximized) {
|
|
// window.maximize();
|
|
// }
|
|
}
|