feat(touchbar): refresh properly for calendar view

This commit is contained in:
Elian Doran 2025-04-13 21:31:20 +03:00
parent d1df365e09
commit 9d9ed2edcb
No known key found for this signature in database

View File

@ -268,6 +268,8 @@ export default class CalendarView extends ViewMode {
this.debouncedSaveView(); this.debouncedSaveView();
this.lastView = currentView; this.lastView = currentView;
appContext.triggerCommand("refreshTouchBar");
} }
async #onCalendarSelection(e: DateSelectArg) { async #onCalendarSelection(e: DateSelectArg) {
@ -609,9 +611,16 @@ export default class CalendarView extends ViewMode {
// Button groups. // Button groups.
if (item.classList.contains("fc-button-group")) { if (item.classList.contains("fc-button-group")) {
let mode: "single" | "buttons" = "single"; let mode: "single" | "buttons" = "single";
let selectedIndex = 0;
const segments: SegmentedControlSegment[] = []; const segments: SegmentedControlSegment[] = [];
const subItems = item.childNodes as NodeListOf<HTMLElement>; const subItems = item.childNodes as NodeListOf<HTMLElement>;
let index = 0;
for (const subItem of subItems) { for (const subItem of subItems) {
if (subItem.ariaPressed === "true") {
selectedIndex = index;
}
index++;
// Text button. // Text button.
if (subItem.innerText) { if (subItem.innerText) {
segments.push({ label: subItem.innerText }); segments.push({ label: subItem.innerText });
@ -639,9 +648,8 @@ export default class CalendarView extends ViewMode {
items.push(new TouchBar.TouchBarSegmentedControl({ items.push(new TouchBar.TouchBarSegmentedControl({
mode, mode,
segments, segments,
change(selectedIndex, isSelected) { selectedIndex,
subItems[selectedIndex].click(); change: (selectedIndex, isSelected) => subItems[selectedIndex].click()
}
})); }));
continue; continue;
} }