Skip to content

Commit 952e1bf

Browse files
committed
More cleanup
- More functions -> classes. - Filesystem changes.
1 parent 4ee2d54 commit 952e1bf

36 files changed

Lines changed: 702 additions & 667 deletions

src/components/ui/GuideRail/TimingViewer.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55

66
import type { ComponentChild } from "preact";
77

8-
import { ArrangementPlayerContext } from "../arrangement/ArrangementViewer.js";
8+
import { ArrangementPlayerContext } from "../Arrangement/ArrangementViewer.js";
99
import { ComponentBase, type IComponentProperties } from "../ComponentBase/ComponentBase.js";
10-
import { NoteViewer } from "../note/NoteViewer.js";
10+
import { NoteViewer } from "../Note/NoteViewer.js";
1111
import { BarDivisibilityContext, type BarDivisibility } from "./GuideRail.js";
1212
import type { ITimeParamsView, ITiming } from "../../../core/types/general.js";
1313

src/components/ui/InstrumentChooser.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import type { ComponentChild, ContextType } from "preact";
77

88
import { getLibrary } from "../../core/Library.js";
99
import type { IArrangementView, IInstrumentMeta } from "../../core/types/general.js";
10-
import { ArrangementPlayerContext } from "./arrangement/ArrangementViewer.js";
10+
import { ArrangementPlayerContext } from "./Arrangement/ArrangementViewer.js";
1111
import { ComponentBase, type IComponentProperties } from "./ComponentBase/ComponentBase.js";
1212
import { AnimadaScoreBookContext } from "./ScoreBookViewer.js";
1313

src/components/ui/Overlay.tsx

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,11 @@
55

66
import { createContext, type ComponentChild } from "preact";
77

8-
import { createPublisher } from "../../core/Publisher.js";
9-
import type { ISubscribable } from "../../core/types/general.js";
108
import { ComponentBase, type IComponentProperties, type IComponentState } from "./ComponentBase/ComponentBase.js";
9+
import { OverlayState } from "./OverlayState.js";
1110

1211
export const OverlayStateContext = createContext<OverlayState | null>(null);
1312

14-
type OverlayState = ISubscribable & { visible: boolean; };
15-
1613
export interface IOverlayProps extends IComponentProperties {
1714
name: string;
1815
}
@@ -25,7 +22,7 @@ interface IOverlayState extends IComponentState {
2522
export class Overlay extends ComponentBase<IOverlayProps, IOverlayState> {
2623
private static overlayStates: Record<string, OverlayState> = {};
2724

28-
private overlayState = this.createOverlayState();
25+
private overlayState = new OverlayState();
2926

3027
public constructor(props: IOverlayProps) {
3128
super(props);
@@ -87,25 +84,6 @@ export class Overlay extends ComponentBase<IOverlayProps, IOverlayState> {
8784
);
8885
}
8986

90-
private createOverlayState(): OverlayState {
91-
const publisher = createPublisher();
92-
let visible = false;
93-
94-
return {
95-
get visible() {
96-
return visible;
97-
},
98-
set visible(newVisible) {
99-
if (visible !== newVisible) {
100-
visible = newVisible;
101-
publisher.publish();
102-
}
103-
},
104-
subscribe: publisher.subscribe,
105-
unsubscribe: publisher.unsubscribe
106-
};
107-
}
108-
10987
private handleTransitionEnd = (event: TransitionEvent) => {
11088
const { visibilityClass } = this.state;
11189

src/components/ui/OverlayState.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/*
2+
* Copyright (c) Mike Lischke. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*/
5+
6+
import { Publisher } from "../../core/Publisher.js";
7+
8+
export class OverlayState extends Publisher {
9+
private isVisible = false;
10+
11+
public get visible(): boolean {
12+
return this.isVisible;
13+
}
14+
15+
public set visible(value: boolean) {
16+
if (this.isVisible !== value) {
17+
this.isVisible = value;
18+
this.publish();
19+
}
20+
}
21+
}

src/components/ui/PolyrhythmViewer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import type { ComponentChild, ContextType } from "preact";
77

88
import type { IPolyrhythmView } from "../../core/types/general.js";
99
import { ComponentBase, type IComponentProperties, type IComponentState } from "./ComponentBase/ComponentBase.js";
10-
import { NoteViewer } from "./note/NoteViewer.js";
10+
import { NoteViewer } from "./Note/NoteViewer.js";
1111
import { AnimadaScoreBookContext, ServicesContext } from "./ScoreBookViewer.js";
1212

1313
export interface IPolyrhythmViewerProps extends IComponentProperties {

src/components/ui/ScoreBookViewer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import type { IAnimadaScoreBook } from "../../core/types/general.js";
99
import type { ScoreBookPlayer } from "../../player/types.js";
1010
import type { ScoreBookUiServices } from "../../ui/AnimadaScoreBookUi.js";
1111
import { About } from "./About.js";
12-
import { ArrangementViewer } from "./arrangement/ArrangementViewer.js";
12+
import { ArrangementViewer } from "./Arrangement/ArrangementViewer.js";
1313
import { ComponentBase, type IComponentProperties } from "./ComponentBase/ComponentBase.js";
1414
import { Popup } from "./Popup.js";
1515

src/components/ui/SelectionControls.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { createRef, type ComponentChild, type ContextType } from "preact";
77

88
import type { IArrangementView } from "../../core/types/general.js";
99
import type { SelectionManager } from "../../ui/SelectionManager.js";
10-
import { ArrangementPlayerContext } from "./arrangement/ArrangementViewer.js";
10+
import { ArrangementPlayerContext } from "./Arrangement/ArrangementViewer.js";
1111
import { ComponentBase, type IComponentState } from "./ComponentBase/ComponentBase.js";
1212
import { ExpandingSpacer } from "./ExpandingSpacer.js";
1313
import { OverlayStateContext } from "./Overlay.js";

src/components/ui/Share.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import type { ComponentChild, ContextType } from "preact";
77

88
import { getShareLink } from "../../core/serialisation/url.js";
9-
import { ArrangementPlayerContext } from "./arrangement/ArrangementViewer.js";
9+
import { ArrangementPlayerContext } from "./Arrangement/ArrangementViewer.js";
1010
import { ComponentBase, type IComponentState } from "./ComponentBase/ComponentBase.js";
1111
import { Overlay } from "./Overlay.js";
1212
import { AnimadaScoreBookContext } from "./ScoreBookViewer.js";

src/components/ui/arrangement/ArrangementViewer.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
import { createContext, createRef, type JSX } from "preact";
77
import type { MutableRefObject } from "preact/compat";
88

9-
import { createPublisher } from "../../../core/Publisher.js";
9+
import { Publisher } from "../../../core/Publisher.js";
1010
import type { ITimeParamsView, RealTime, Subscription } from "../../../core/types/general.js";
11-
import type { ArrangementPlayer } from "../../../player/types.js";
11+
import type { IArrangementPlayer } from "../../../player/types.js";
1212
import type { AnimationEngine } from "../../../ui/AnimationEngine.js";
1313
import { ComponentBase, type IComponentProperties, type IComponentState } from "../ComponentBase/ComponentBase.js";
1414
import { GuideRail } from "../GuideRail/GuideRail.js";
@@ -17,18 +17,18 @@ import { Overlay } from "../Overlay.js";
1717
import { ServicesContext } from "../ScoreBookViewer.js";
1818
import { Scrollbar } from "../Scrollbar.js";
1919
import { Share } from "../Share.js";
20-
import { TrackViewer } from "../track/TrackViewer.js";
20+
import { TrackViewer } from "../Track/TrackViewer.js";
2121
import { ArrangementControlsBottom } from "./ArrangementControlsBottom.js";
2222
import { ArrangementControlsTop } from "./ArrangementControlsTop.js";
2323

2424
const baseNoteWidth = 55.5; // 54pt flex-basis + 1.5pt for border
2525

26-
export const ArrangementPlayerContext = createContext<ArrangementPlayer | null>(null);
26+
export const ArrangementPlayerContext = createContext<IArrangementPlayer | null>(null);
2727
export const NoteWidthContext = createContext<number | null>(null);
2828
export const NoteLineMinWidth = createContext<number | null>(null);
2929

3030
export interface IArrangementViewerProps extends IComponentProperties {
31-
arrangementPlayer: ArrangementPlayer;
31+
arrangementPlayer: IArrangementPlayer;
3232
}
3333

3434
interface IArrangementViewerState extends IComponentState {
@@ -42,7 +42,7 @@ interface IArrangementViewerState extends IComponentState {
4242

4343
export class ArrangementViewer extends ComponentBase<IArrangementViewerProps, IArrangementViewerState> {
4444
private viewerRef = createRef<HTMLDivElement>();
45-
private contentWidthPublisher = createPublisher();
45+
private contentWidthPublisher = new Publisher();
4646

4747
private animationEngine?: AnimationEngine;
4848
private resizeObserver: ResizeObserver;

src/components/ui/note/NoteViewer.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import type { INoteStyle, INoteView, ISubscribable } from "../../../core/types/g
99
import { isSameTiming } from "../../../core/utils.js";
1010
import { createAudioBufferPlayer } from "../../../player/AudioBufferPlayer.js";
1111
import { getTrackColour } from "../../../ui/track-colour.js";
12-
import { ArrangementPlayerContext } from "../arrangement/ArrangementViewer.js";
12+
import { ArrangementPlayerContext } from "../Arrangement/ArrangementViewer.js";
1313
import { ComponentBase, type IComponentProperties, type IComponentState } from "../ComponentBase/ComponentBase.js";
1414
import { AnimadaScoreBookContext, ServicesContext } from "../ScoreBookViewer.js";
1515
import { TouchHoldDetector } from "../TouchHoldDetector.js";
16-
import { TrackPlayerContext } from "../track/TrackViewer.js";
16+
import { TrackPlayerContext } from "../Track/TrackViewer.js";
1717
import { NoteStyleSymbolViewer } from "./NoteStyleSymbolViewer.js";
1818

1919
const audioContext = new AudioContext();

0 commit comments

Comments
 (0)