openclaw/ui/src/i18n/lib/lit-controller.ts

23 lines
523 B
TypeScript

import type { ReactiveController, ReactiveControllerHost } from "lit";
import { i18n } from "./translate.ts";
export class I18nController implements ReactiveController {
private host: ReactiveControllerHost;
private unsubscribe?: () => void;
constructor(host: ReactiveControllerHost) {
this.host = host;
this.host.addController(this);
}
hostConnected() {
this.unsubscribe = i18n.subscribe(() => {
this.host.requestUpdate();
});
}
hostDisconnected() {
this.unsubscribe?.();
}
}