Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stop visualizer rendering when visualizer is minimized #28

Closed
wants to merge 8 commits into from
5 changes: 4 additions & 1 deletion src/components/panelHeader/outputPanelHeader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,10 @@ export default class OutputPanelHeader {
);
new OutputHeaderToggle(
visualizerButton,
OutputPanelHeader.visualizerContainer
OutputPanelHeader.visualizerContainer,
false,
() => visual?.start(),
() => visual?.stop()
);
}

Expand Down
10 changes: 9 additions & 1 deletion src/components/toggle/headerToggle.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,24 @@ export default class HeaderToggle {
public button: HTMLButtonElement;
public contentContainer: HTMLDivElement;
protected open: boolean = false;
protected openCallback: () => void;
protected closeCallback: () => void;

constructor(
button: HTMLButtonElement,
contentContainer: HTMLDivElement,
initialOpen: boolean = false
initialOpen: boolean = false,
openCallback: () => void = () => {},
closeCallback: () => void = () => {}
) {
this.button = button;
this.contentContainer = contentContainer;

this.button.addEventListener("click", () => {
this.toggle();
});
this.openCallback = openCallback;
this.closeCallback = closeCallback;
this.setActive(initialOpen);
}

Expand All @@ -28,9 +34,11 @@ export default class HeaderToggle {
setActive(open: boolean) {
if (open) {
this.contentContainer.classList.remove("hidden");
this.openCallback();
this.open = true;
} else {
this.contentContainer.classList.add("hidden");
this.closeCallback();
this.open = false;
}
}
Expand Down
14 changes: 12 additions & 2 deletions src/components/toggle/outputHeaderToggle.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,22 @@ export default class OutputHeaderToggle extends HeaderToggle {
constructor(
button: HTMLButtonElement,
contentContainer: HTMLDivElement,
initialOpen: boolean = false
initialOpen: boolean = false,
openCallback: () => void = () => {},
closeCallback: () => void = () => {}
) {
OutputHeaderToggle.numToggles++;
// If initialOpen, increment active
if (initialOpen) {
OutputHeaderToggle.numActive++;
}
super(button, contentContainer, initialOpen);
super(
button,
contentContainer,
initialOpen,
openCallback,
closeCallback
);
}

toggle() {
Expand All @@ -54,6 +62,7 @@ export default class OutputHeaderToggle extends HeaderToggle {
this.button.classList.remove(DARK_HOVER_COLOR_CLASS);
this.contentContainer.classList.remove("hidden");

this.openCallback();
this.open = true;
} else {
// inactive
Expand All @@ -65,6 +74,7 @@ export default class OutputHeaderToggle extends HeaderToggle {
this.button.classList.add(DARK_HOVER_COLOR_CLASS);
this.contentContainer.classList.add("hidden");

this.closeCallback();
this.open = false;
}

Expand Down
1 change: 0 additions & 1 deletion src/host.ts
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,5 @@ function startVisualizer() {
// connect chuck output to analyser
theChuck.connect(analyser);
// start visualizer
visual.drawVisualization_();
visual.start();
}
Loading