Files
ipwa/frontend/src/app/admin-view/menu-edit/menu-add/menu-add.component.ts
T

60 lines
1.6 KiB
TypeScript

import { Component, inject, signal } from '@angular/core'
import { MenuUploadComponent } from '../menu-upload/menu-upload.component'
import { MatDialog, MatDialogRef } from '@angular/material/dialog'
import { FDSelection } from 'src/app/fd.da'
import { FormControl, FormGroup } from '@angular/forms'
import { MAT_DATE_RANGE_SELECTION_STRATEGY } from '@angular/material/datepicker'
import { DateTime } from 'luxon'
import { weekendFilter } from 'src/app/util'
@Component({
selector: 'app-menu-add',
templateUrl: './menu-add.component.html',
styleUrl: './menu-add.component.scss',
providers: [
{ provide: MAT_DATE_RANGE_SELECTION_STRATEGY, useClass: FDSelection },
],
standalone: false,
})
export class MenuAddComponent {
public dialogRef: MatDialogRef<MenuAddComponent> = inject(MatDialogRef)
private dialog = inject(MatDialog)
type: string | undefined
filter = weekendFilter
day = signal<DateTime>(DateTime.now())
range = new FormGroup({
start: new FormControl<DateTime | null>(null),
end: new FormControl<DateTime | null>(null),
})
submit() {
switch (this.type) {
case 'day':
this.dialogRef.close({ type: 'day', value: this.day() })
break
case 'week':
this.dialogRef.close({
type: 'week',
value: { start: this.range.value.start, count: 5 },
})
break
default:
break
}
}
activateUpload() {
this.dialog
.open(MenuUploadComponent)
.afterClosed()
.subscribe(data => {
if (data) {
this.dialogRef.close({ type: 'file', ...data })
}
})
}
}