Path: blob/master/src/packages/frontend/account/terminal-settings.tsx
6037 views
/*1* This file is part of CoCalc: Copyright © 2020 Sagemath, Inc.2* License: MS-RSL – see LICENSE.md for details3*/45import { Button } from "antd";6import { useIntl } from "react-intl";78import { Panel } from "@cocalc/frontend/antd-bootstrap";9import { useTypedRedux } from "@cocalc/frontend/app-framework";10import {11Icon,12LabeledRow,13Loading,14SelectorInput,15} from "@cocalc/frontend/components";16import {17example,18theme_desc,19} from "@cocalc/frontend/frame-editors/terminal-editor/theme-data";20import { labels } from "@cocalc/frontend/i18n";21import { set_account_table } from "./util";2223declare global {24interface Window {25Terminal: any;26}27}2829export function TerminalSettings() {30const intl = useIntl();3132const terminal = useTypedRedux("account", "terminal");33const color_scheme = terminal?.get("color_scheme") || "default";3435if (terminal == null) {36return <Loading />;37}3839const label = intl.formatMessage({40id: "account.terminal-settings.label-row.label",41defaultMessage: "Terminal color scheme",42});4344return (45<Panel46size="small"47header={48<>49<Icon name="terminal" /> Terminal Settings50</>51}52>53<LabeledRow label={label}>54<Button55disabled={color_scheme === "default"}56style={{ float: "right" }}57onClick={() => {58set_account_table({ terminal: { color_scheme: "default" } });59}}60>61{intl.formatMessage(labels.reset)}62</Button>63<SelectorInput64style={{ width: "250px" }}65selected={color_scheme}66options={theme_desc}67on_change={(color_scheme) =>68set_account_table({ terminal: { color_scheme } })69}70showSearch={true}71/>72</LabeledRow>73<TerminalPreview color_scheme={color_scheme} />74</Panel>75);76}7778function TerminalPreview({ color_scheme }: { color_scheme: string }) {79const html = example(color_scheme || "default");80return (81<div82style={{83marginTop: "10px",84border: "1px solid #ccc",85borderRadius: "4px",86overflow: "hidden",87}}88dangerouslySetInnerHTML={{ __html: html }}89/>90);91}929394