mirror of
https://github.com/ankitects/anki.git
synced 2025-11-06 04:37:22 -05:00
Added: "ReviewerRequest" type
This commit is contained in:
parent
386133743e
commit
246e6f6df6
4 changed files with 18 additions and 4 deletions
|
|
@ -5,7 +5,8 @@ import "../../reviewer/reviewer.scss";
|
|||
import "mathjax/es5/tex-chtml-full.js";
|
||||
import { renderError } from "../../reviewer";
|
||||
import { enableNightMode } from "../reviewer/reviewer";
|
||||
import type { InnerReviewerRequest } from "./reviewerRequest";
|
||||
import type { ReviewerRequest } from "../reviewer/reviewerRequest";
|
||||
import type { InnerReviewerRequest } from "./innerReviewerRequest";
|
||||
|
||||
declare const MathJax: any;
|
||||
const urlParams = new URLSearchParams(location.search);
|
||||
|
|
@ -57,7 +58,10 @@ function pycmd(cmd: string) {
|
|||
const match = cmd.match(/play:(q|a):(\d+)/);
|
||||
if (match) {
|
||||
const [_, context, index] = match;
|
||||
window.parent.postMessage({ type: "audio", answerSide: context == "a", index: parseInt(index) }, "*");
|
||||
window.parent.postMessage(
|
||||
{ type: "audio", answerSide: context == "a", index: parseInt(index) } satisfies ReviewerRequest,
|
||||
"*",
|
||||
);
|
||||
}
|
||||
}
|
||||
globalThis.pycmd = pycmd;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,8 @@
|
|||
import { CardAnswer, type NextCardDataResponse_NextCardData } from "@generated/anki/scheduler_pb";
|
||||
import { nextCardData, playAudio } from "@generated/backend";
|
||||
import { derived, get, writable } from "svelte/store";
|
||||
import type { InnerReviewerRequest } from "../reviewer-inner/reviewerRequest";
|
||||
import type { InnerReviewerRequest } from "../reviewer-inner/innerReviewerRequest";
|
||||
import type { ReviewerRequest } from "./reviewerRequest";
|
||||
|
||||
export function isNightMode() {
|
||||
// https://stackoverflow.com/a/57795518
|
||||
|
|
@ -40,7 +41,7 @@ export class ReviewerState {
|
|||
addEventListener("message", this.onMessage.bind(this));
|
||||
}
|
||||
|
||||
onMessage(e: MessageEvent<any>) {
|
||||
onMessage(e: MessageEvent<ReviewerRequest>) {
|
||||
switch (e.data.type) {
|
||||
case "audio": {
|
||||
playAudio({ answerSide: e.data.answerSide, index: e.data.index, cid: this.currentCard!.card!.id });
|
||||
|
|
|
|||
9
ts/routes/reviewer/reviewerRequest.ts
Normal file
9
ts/routes/reviewer/reviewerRequest.ts
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// Copyright: Ankitects Pty Ltd and contributors
|
||||
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
interface AudioMessage {
|
||||
type: "audio";
|
||||
answerSide: boolean;
|
||||
index: number;
|
||||
}
|
||||
|
||||
export type ReviewerRequest = AudioMessage;
|
||||
Loading…
Reference in a new issue