mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-07-18 00:46:45 +00:00
Co-authored-by: cocojojo5213 <cocojojo5213@users.noreply.github.com>
This commit is contained in:
parent
667e8c3aa0
commit
3221cf001c
4 changed files with 77 additions and 20 deletions
|
|
@ -68,7 +68,7 @@ import { SectionService } from './features/section/section.service';
|
|||
import { DialogPromptComponent } from './ui/dialog-prompt/dialog-prompt.component';
|
||||
import { TODAY_TAG } from './features/tag/tag.const';
|
||||
import { normalizeBackgroundImageBlur } from './features/work-context/work-context.const';
|
||||
import type { WorkContextSettingsDialogData } from './features/work-context/dialog-work-context-settings/dialog-work-context-settings.component';
|
||||
import { openWorkContextSettingsDialog } from './features/work-context/dialog-work-context-settings/open-work-context-settings-dialog';
|
||||
import { isInputElement } from './util/dom-element';
|
||||
import { MobileBottomNavComponent } from './core-ui/mobile-bottom-nav/mobile-bottom-nav.component';
|
||||
import { StartupService } from './core/startup/startup.service';
|
||||
|
|
@ -468,16 +468,13 @@ export class AppComponent implements OnDestroy, AfterViewInit {
|
|||
const entity = isForProject
|
||||
? await firstValueFrom(this._projectService.getByIdOnce$(contextId))
|
||||
: await firstValueFrom(this._tagService.getTagById$(contextId).pipe(first()));
|
||||
if (!entity) {
|
||||
return;
|
||||
}
|
||||
|
||||
const { DialogWorkContextSettingsComponent } =
|
||||
await import('./features/work-context/dialog-work-context-settings/dialog-work-context-settings.component');
|
||||
this._matDialog.open(DialogWorkContextSettingsComponent, {
|
||||
restoreFocus: true,
|
||||
backdropClass: 'cdk-overlay-transparent-backdrop',
|
||||
data: {
|
||||
isProject: isForProject,
|
||||
entity,
|
||||
} as WorkContextSettingsDialogData,
|
||||
await openWorkContextSettingsDialog(this._matDialog, {
|
||||
isProject: isForProject,
|
||||
entity,
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ import { TaskSharedActions } from '../../root-store/meta/task-shared.actions';
|
|||
import { TaskWithSubTasks } from '../../features/tasks/task.model';
|
||||
import { firstValueFrom, Observable, of } from 'rxjs';
|
||||
import { AsyncPipe } from '@angular/common';
|
||||
import type { WorkContextSettingsDialogData } from '../../features/work-context/dialog-work-context-settings/dialog-work-context-settings.component';
|
||||
import { openWorkContextSettingsDialog } from '../../features/work-context/dialog-work-context-settings/open-work-context-settings-dialog';
|
||||
|
||||
@Component({
|
||||
selector: 'work-context-menu',
|
||||
|
|
@ -306,16 +306,13 @@ export class WorkContextMenuComponent implements OnInit {
|
|||
: await firstValueFrom(
|
||||
this._tagService.getTagById$(this.contextId).pipe(first()),
|
||||
);
|
||||
if (!entity) {
|
||||
throw new Error(`Unable to find work context ${this.contextId}`);
|
||||
}
|
||||
|
||||
const { DialogWorkContextSettingsComponent } =
|
||||
await import('../../features/work-context/dialog-work-context-settings/dialog-work-context-settings.component');
|
||||
this._matDialog.open(DialogWorkContextSettingsComponent, {
|
||||
restoreFocus: true,
|
||||
backdropClass: 'cdk-overlay-transparent-backdrop',
|
||||
data: {
|
||||
isProject: this.isForProject,
|
||||
entity,
|
||||
} as WorkContextSettingsDialogData,
|
||||
await openWorkContextSettingsDialog(this._matDialog, {
|
||||
isProject: this.isForProject,
|
||||
entity,
|
||||
});
|
||||
} catch (err) {
|
||||
this._snackService.open({
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
import type { MatDialog, MatDialogRef } from '@angular/material/dialog';
|
||||
import { DEFAULT_PROJECT } from '../../project/project.const';
|
||||
import { DialogWorkContextSettingsComponent } from './dialog-work-context-settings.component';
|
||||
import {
|
||||
openWorkContextSettingsDialog,
|
||||
WORK_CONTEXT_SETTINGS_DIALOG_CONFIG,
|
||||
} from './open-work-context-settings-dialog';
|
||||
import type { WorkContextSettingsDialogData } from './dialog-work-context-settings.component';
|
||||
|
||||
describe('openWorkContextSettingsDialog', () => {
|
||||
it('uses a shared responsive width for project and tag settings dialogs', () => {
|
||||
expect(WORK_CONTEXT_SETTINGS_DIALOG_CONFIG).toEqual({
|
||||
restoreFocus: true,
|
||||
backdropClass: 'cdk-overlay-transparent-backdrop',
|
||||
width: '600px',
|
||||
maxWidth: '95vw',
|
||||
});
|
||||
});
|
||||
|
||||
it('opens the dialog with the shared size config and caller data', async () => {
|
||||
const matDialog = jasmine.createSpyObj<MatDialog>('MatDialog', ['open']);
|
||||
matDialog.open.and.returnValue(
|
||||
{} as MatDialogRef<DialogWorkContextSettingsComponent>,
|
||||
);
|
||||
const data: WorkContextSettingsDialogData = {
|
||||
isProject: true,
|
||||
entity: DEFAULT_PROJECT,
|
||||
};
|
||||
|
||||
await openWorkContextSettingsDialog(matDialog, data);
|
||||
|
||||
expect(matDialog.open).toHaveBeenCalledOnceWith(DialogWorkContextSettingsComponent, {
|
||||
...WORK_CONTEXT_SETTINGS_DIALOG_CONFIG,
|
||||
data,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
import type { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';
|
||||
import type {
|
||||
DialogWorkContextSettingsComponent,
|
||||
WorkContextSettingsDialogData,
|
||||
} from './dialog-work-context-settings.component';
|
||||
|
||||
export const WORK_CONTEXT_SETTINGS_DIALOG_CONFIG: MatDialogConfig<WorkContextSettingsDialogData> =
|
||||
{
|
||||
restoreFocus: true,
|
||||
backdropClass: 'cdk-overlay-transparent-backdrop',
|
||||
width: '600px',
|
||||
maxWidth: '95vw',
|
||||
};
|
||||
|
||||
export const openWorkContextSettingsDialog = async (
|
||||
matDialog: MatDialog,
|
||||
data: WorkContextSettingsDialogData,
|
||||
): Promise<MatDialogRef<DialogWorkContextSettingsComponent>> => {
|
||||
const { DialogWorkContextSettingsComponent } =
|
||||
await import('./dialog-work-context-settings.component');
|
||||
|
||||
return matDialog.open(DialogWorkContextSettingsComponent, {
|
||||
...WORK_CONTEXT_SETTINGS_DIALOG_CONFIG,
|
||||
data,
|
||||
});
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue