Files
tubestation/browser/components/backup/content/backup-settings.stories.mjs
kpatenio 56fdf83248 Bug 1895943 - Implement file picker and save location for backups. r=backup-reviewers,fluent-reviewers,flod,firefox-desktop-core-reviewers
Patch by kpatenio <kpatenio@mozilla.com>.

1. Allows for selecting a custom path or the default (Documents) path for saving backups. The selection is passed from the "turn-on-scheduled-backups" dialog to "BackupService".
2. After pressing the "Choose" button in the dialog, a filepicker will appear so that a folder can be selected.
3. Once the dialog is confirmed, the absolute path is saved to a pref called "browser.backup.location" and saved in the service state.

Other changes:
- Added the Documents folder as the default save location
- Added an onUpdate function for "browser.backup.location" that passes the updated BackupService state to registered widgets (backup settings section, dialogs)
- Added Storybook entries and tests for the newly updated input and filepicker

Figma: https://www.figma.com/design/vNbX4c0ws0L1qr0mxpKvsW/Fx-Backup?node-id=147-4568&t=tILUMKfg8c6Ed1Ul-0 (turn on backup dialog)

Differential Revision: https://phabricator.services.mozilla.com/D210850
2024-06-12 17:36:52 +00:00

60 lines
1.7 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// eslint-disable-next-line import/no-unresolved
import { html } from "lit.all.mjs";
import "./backup-settings.mjs";
window.MozXULElement.insertFTLIfNeeded("locales-preview/backupSettings.ftl");
window.MozXULElement.insertFTLIfNeeded("branding/brand.ftl");
export default {
title: "Domain-specific UI Widgets/Backup/Backup Settings",
component: "backup-settings",
argTypes: {},
};
const Template = ({ backupServiceState }) => html`
<backup-settings .backupServiceState=${backupServiceState}></backup-settings>
`;
export const BackingUpNotInProgress = Template.bind({});
BackingUpNotInProgress.args = {
backupServiceState: {
backupDirPath: "/Some/User/Documents",
backupInProgress: false,
defaultParent: {
path: "/Some/User/Documents",
fileName: "Documents",
},
scheduledBackupsEnabled: false,
},
};
export const BackingUpInProgress = Template.bind({});
BackingUpInProgress.args = {
backupServiceState: {
backupDirPath: "/Some/User/Documents",
backupInProgress: true,
defaultParent: {
path: "/Some/User/Documents",
fileName: "Documents",
},
scheduledBackupsEnabled: false,
},
};
export const ScheduledBackupsEnabled = Template.bind({});
ScheduledBackupsEnabled.args = {
backupServiceState: {
backupDirPath: "/Some/User/Documents",
backupInProgress: false,
defaultParent: {
path: "/Some/User/Documents",
fileName: "Documents",
},
scheduledBackupsEnabled: true,
},
};