Skip to content

Commit 6b10369

Browse files
authored
Merge pull request #8415 from sagemathinc/fix-show-labels-8397
frontend/action bar: show/hide labels menu fix and more padding
2 parents d79b0b6 + 405a5d1 commit 6b10369

34 files changed

+424
-331
lines changed

src/packages/frontend/account/other-settings.tsx

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,17 @@ import AIAvatar from "@cocalc/frontend/components/ai-avatar";
2525
import { IS_MOBILE, IS_TOUCH } from "@cocalc/frontend/feature";
2626
import LLMSelector from "@cocalc/frontend/frame-editors/llm/llm-selector";
2727
import { LOCALIZATIONS, labels } from "@cocalc/frontend/i18n";
28-
import { getValidVBAROption } from "@cocalc/frontend/project/page/vbar";
28+
import { getValidActivityBarOption } from "@cocalc/frontend/project/page/activity-bar";
2929
import {
30-
VBAR_EXPLANATION,
31-
VBAR_KEY,
32-
VBAR_LABELS,
33-
VBAR_LABELS_DEFAULT,
34-
VBAR_OPTIONS,
35-
VBAR_TOGGLE_LABELS,
36-
VBAR_TOGGLE_LABELS_DESCRIPTION,
37-
} from "@cocalc/frontend/project/page/vbar-consts";
30+
ACTIVITY_BAR_EXPLANATION,
31+
ACTIVITY_BAR_KEY,
32+
ACTIVITY_BAR_LABELS,
33+
ACTIVITY_BAR_LABELS_DEFAULT,
34+
ACTIVITY_BAR_OPTIONS,
35+
ACTIVITY_BAR_TITLE,
36+
ACTIVITY_BAR_TOGGLE_LABELS,
37+
ACTIVITY_BAR_TOGGLE_LABELS_DESCRIPTION,
38+
} from "@cocalc/frontend/project/page/activity-bar-consts";
3839
import { NewFilenameFamilies } from "@cocalc/frontend/project/utils";
3940
import track from "@cocalc/frontend/user-tracking";
4041
import { webapp_client } from "@cocalc/frontend/webapp-client";
@@ -498,48 +499,53 @@ export function OtherSettings(props: Readonly<Props>): React.JSX.Element {
498499
}
499500

500501
function render_vertical_fixed_bar_options(): Rendered {
501-
const selected = getValidVBAROption(props.other_settings.get(VBAR_KEY));
502+
const selected = getValidActivityBarOption(
503+
props.other_settings.get(ACTIVITY_BAR_KEY),
504+
);
502505
const options = Object.fromEntries(
503-
Object.entries(VBAR_OPTIONS).map(([k, v]) => [k, intl.formatMessage(v)]),
506+
Object.entries(ACTIVITY_BAR_OPTIONS).map(([k, v]) => [
507+
k,
508+
intl.formatMessage(v),
509+
]),
504510
);
505511
return (
506-
<LabeledRow
507-
label={intl.formatMessage({
508-
id: "account.other-settings.vbar.title",
509-
defaultMessage: "Vertical Project Bar",
510-
})}
511-
>
512+
<LabeledRow label={intl.formatMessage(ACTIVITY_BAR_TITLE)}>
512513
<div>
513514
<SelectorInput
514515
style={{ marginBottom: "10px" }}
515516
selected={selected}
516517
options={options}
517518
on_change={(value) => {
518-
on_change(VBAR_KEY, value);
519+
on_change(ACTIVITY_BAR_KEY, value);
519520
track("flyout", { aspect: "layout", how: "account", value });
520521
}}
521522
/>
522523
<Paragraph
523524
type="secondary"
524525
ellipsis={{ expandable: true, symbol: "more" }}
525526
>
526-
{intl.formatMessage(VBAR_EXPLANATION)}
527+
{intl.formatMessage(ACTIVITY_BAR_EXPLANATION)}
527528
</Paragraph>
528529
<Checkbox
529530
checked={
530-
props.other_settings.get(VBAR_LABELS) ?? VBAR_LABELS_DEFAULT
531+
props.other_settings.get(ACTIVITY_BAR_LABELS) ??
532+
ACTIVITY_BAR_LABELS_DEFAULT
531533
}
532534
onChange={(e) => {
533-
on_change(VBAR_LABELS, e.target.checked);
535+
on_change(ACTIVITY_BAR_LABELS, e.target.checked);
534536
}}
535537
>
536538
<Paragraph
537539
type="secondary"
538540
style={{ marginBottom: 0 }}
539541
ellipsis={{ expandable: true, symbol: "more" }}
540542
>
541-
<Text strong>{intl.formatMessage(VBAR_TOGGLE_LABELS)}</Text>:{" "}
542-
{intl.formatMessage(VBAR_TOGGLE_LABELS_DESCRIPTION)}
543+
<Text strong>
544+
{intl.formatMessage(ACTIVITY_BAR_TOGGLE_LABELS, {
545+
show: false,
546+
})}
547+
</Text>
548+
: {intl.formatMessage(ACTIVITY_BAR_TOGGLE_LABELS_DESCRIPTION)}
543549
</Paragraph>
544550
</Checkbox>
545551
</div>

src/packages/frontend/account/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { OTHER_SETTINGS_REPLY_ENGLISH_KEY } from "@cocalc/util/i18n/const";
1717
import { PassportStrategyFrontend } from "@cocalc/util/types/passport-types";
1818
import { SETTINGS_LANGUAGE_MODEL_KEY } from "./useLanguageModelSetting";
1919
import { type AutoBalance } from "@cocalc/util/db-schema/accounts";
20-
import { VBAR_LABELS } from "../project/page/vbar-consts";
20+
import { ACTIVITY_BAR_LABELS } from "../project/page/activity-bar-consts";
2121

2222
// this is incomplete...
2323

@@ -58,7 +58,7 @@ export interface AccountState {
5858
[OTHER_SETTINGS_REPLY_ENGLISH_KEY]?: string;
5959
no_email_new_messages?: boolean;
6060
use_balance_toward_subscriptions?: boolean;
61-
[VBAR_LABELS]?: boolean; // whether to show labels on the vertical action bar
61+
[ACTIVITY_BAR_LABELS]?: boolean; // whether to show labels on the vertical activity bar
6262
}>;
6363
stripe_customer?: TypedMap<{
6464
subscriptions: { data: Map<string, any> };

src/packages/frontend/app/context.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,17 @@ import { useIntl } from "react-intl";
1010

1111
import { useTypedRedux } from "@cocalc/frontend/app-framework";
1212
import { IntlMessage, isIntlMessage } from "@cocalc/frontend/i18n";
13-
import { VBAR_LABELS } from "@cocalc/frontend/project/page/vbar-consts";
13+
import { ACTIVITY_BAR_LABELS } from "@cocalc/frontend/project/page/activity-bar-consts";
1414
import { COLORS } from "@cocalc/util/theme";
1515
import { NARROW_THRESHOLD_PX, PageStyle } from "./top-nav-consts";
16-
import useAppContext, { AppContext, calcStyle } from "./use-context";
16+
import useAppContext, { AppContext, AppState, calcStyle } from "./use-context";
1717

1818
export { AppContext, useAppContext };
1919

20-
export function useAppContextProvider() {
20+
export function useAppContextProvider(): AppState {
2121
const intl = useIntl();
2222
const other_settings = useTypedRedux("account", "other_settings");
23-
const showVbarLabels = other_settings.get(VBAR_LABELS) ?? true;
23+
const showActBarLabels = other_settings.get(ACTIVITY_BAR_LABELS) ?? true;
2424

2525
const [pageWidthPx, setPageWidthPx] = useState<number>(window.innerWidth);
2626

@@ -62,7 +62,7 @@ export function useAppContextProvider() {
6262
formatIntl,
6363
pageWidthPx,
6464
pageStyle,
65-
showVbarLabels,
65+
showActBarLabels,
6666
};
6767
}
6868

src/packages/frontend/app/use-context.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { createContext, ReactNode, useContext } from "react";
1111
import type { IntlMessage } from "@cocalc/util/i18n/types";
1212
import { COLORS } from "@cocalc/util/theme";
1313

14-
import { VBAR_LABELS_DEFAULT } from "@cocalc/frontend/project/page/vbar-consts";
14+
import { ACTIVITY_BAR_LABELS_DEFAULT } from "@cocalc/frontend/project/page/activity-bar-consts";
1515
import {
1616
FONT_SIZE_ICONS_NARROW,
1717
FONT_SIZE_ICONS_NORMAL,
@@ -28,14 +28,14 @@ export interface AppState {
2828
formatIntl: (msg: IntlMessage | ReactNode | string) => ReactNode | string;
2929
timeAgoAbsolute?: boolean;
3030
setTimeAgoAbsolute?: (boolean) => void;
31-
showVbarLabels?: boolean; // whether to show labels on the vertical fixed bar
31+
showActBarLabels?: boolean; // whether to show labels on the vertical fixed bar
3232
}
3333

3434
export const DEFAULT_CONTEXT = {
3535
pageWidthPx: 1000, // gets updated
3636
pageStyle: calcStyle(false), // gets updated
3737
formatIntl: () => "Loading…",
38-
showVbarLabels: VBAR_LABELS_DEFAULT,
38+
showActBarLabels: ACTIVITY_BAR_LABELS_DEFAULT,
3939
};
4040

4141
export const AppContext = createContext<AppState>(DEFAULT_CONTEXT);

src/packages/frontend/components/icon.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ import {
180180
ShareAltOutlined,
181181
ShoppingCartOutlined,
182182
ShrinkOutlined,
183+
SignatureOutlined,
183184
SlidersOutlined,
184185
SmileOutlined,
185186
SolutionOutlined,
@@ -200,9 +201,9 @@ import {
200201
TagsFilled,
201202
TagsOutlined,
202203
TagsTwoTone,
203-
ToTopOutlined,
204204
TeamOutlined,
205205
ThunderboltOutlined,
206+
ToTopOutlined,
206207
ToolOutlined,
207208
TranslationOutlined,
208209
UnderlineOutlined,
@@ -594,6 +595,7 @@ const IconSpec = {
594595
underline: UnderlineOutlined,
595596
undo: UndoOutlined,
596597
ungroup: { IconFont: "ungroup" },
598+
"signature-outlined": SignatureOutlined,
597599
swap: SwapOutlined,
598600
unlink: { IconFont: "unlink" },
599601
upload: UploadOutlined,

src/packages/frontend/i18n/trans/ar_EG.json

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@
9393
"account.other-settings.theme.dark_mode.grayscale": "درجات الرمادي",
9494
"account.other-settings.theme.dark_mode.sepia": "سيبيا",
9595
"account.other-settings.time_ago_absolute": "عرض <strong>الطوابع الزمنية كنقاط مطلقة في الوقت</strong> بدلاً من أن تكون نسبة إلى الوقت الحالي",
96-
"account.other-settings.vbar.title": "الشريط العمودي للمشروع",
9796
"account.public-path.unpublish.title": "إلغاء نشر كل شيء",
9897
"account.public-paths.banner": "هذه نظرة عامة على ملفاتك العامة. <A>قم بزيارة هذه الصفحة لمزيد من التفاصيل...</A>",
9998
"account.public-paths.info": "الملفات التي تم نشرها في أي مشروع استخدمته بنشاط.",
@@ -1221,6 +1220,16 @@
12211220
"project.no-internet-modal.message": "لحل هذه المشكلة، <A1>تحتاج إلى تطبيق</A1> <A2>ترخيص صالح</A2> يوفر ترقيات أو <A3>شراء ترخيص</A3>.",
12221221
"project.no-internet-modal.title": "لا يوجد اتصال بالإنترنت",
12231222
"project.open_file.what": "افتح الملف \"{path}\"",
1223+
"project.page.activity-bar-layout.title": "تخطيط شريط النشاط",
1224+
"project.page.activity-bar.explanation": "هذه الميزة تعدل وظيفة شريط الأزرار في الجانب الأيسر من المشروع. بشكل افتراضي، تعرض الأزرار صفحات كاملة وعلامات صغيرة للوحات المنبثقة. عند اختيار خيار \"الصفحات الكاملة\"، يتم عرض الأزرار فقط، وتفتح الصفحات الكاملة عند النقر. وعلى العكس، عند اختيار وضع \"اللوحات المنبثقة\"، تتوسع اللوحات المنبثقة فقط عند النقر. في كلتا الحالتين الأخيرتين، يمكن عرض نوع اللوحة البديل بالنقر مع الضغط على مفتاح Shift على الزر المقابل.",
1225+
"project.page.activity-bar.hide.tooltip": "إخفاء شريط النشاط",
1226+
"project.page.activity-bar.option.both": "الصفحات الكاملة ولوحات الانبثاق",
1227+
"project.page.activity-bar.option.flyout": "الأزرار تبدل اللوحات المنبثقة",
1228+
"project.page.activity-bar.option.full": "الأزرار تظهر الصفحات الكاملة",
1229+
"project.page.activity-bar.show.tooltip": "إظهار شريط النشاط",
1230+
"project.page.activity-bar.title": "شريط النشاط",
1231+
"project.page.activity-bar.toggle-labels": "{show, select, true {إخفاء التسميات} other {إظهار التسميات}}",
1232+
"project.page.activity-bar.toggle-labels.description": "عرض الوصف على أزرار شريط النشاط العمودي",
12241233
"project.page.ai-generate-document.content.label": "قدم وصفًا مفصلًا لوثيقة {docName} التي تريد إنشاؤها:",
12251234
"project.page.ai-generate-document.content.placeholder": "وصف المحتوى...",
12261235
"project.page.ai-generate-document.create_document.what": "إنشاء مستند {docName} \"{path}\"",
@@ -1248,15 +1257,7 @@
12481257
"project.page.flyouts.new.header_location": "الموقع:",
12491258
"project.page.project-licenses.header": "الحصص و{upgrades}",
12501259
"project.page.project-licenses.intro": "التراخيص والترقيات حسب الاستخدام تغير الحصص والميزات المتاحة للمشروع",
1251-
"project.page.vbar.explanation": "هذه الميزة تعدل وظيفة شريط الأزرار في الجانب الأيسر من المشروع. بشكل افتراضي، تعرض الأزرار صفحات كاملة وعلامات صغيرة للوحات المنبثقة. عند اختيار خيار \"الصفحات الكاملة\"، يتم عرض الأزرار فقط، وتفتح الصفحات الكاملة عند النقر. وعلى العكس، عند اختيار وضع \"اللوحات المنبثقة\"، تتوسع اللوحات المنبثقة فقط عند النقر. في كلتا الحالتين الأخيرتين، يمكن عرض نوع اللوحة البديل بالنقر مع الضغط على مفتاح Shift على الزر المقابل.",
1252-
"project.page.vbar.option.both": "الصفحات الكاملة ولوحات الانبثاق",
1253-
"project.page.vbar.option.flyout": "الأزرار تبدل اللوحات المنبثقة",
1254-
"project.page.vbar.option.full": "الأزرار تظهر الصفحات الكاملة",
1255-
"project.page.vertical-fixed-tabs.show-sidebar.tooltip": "عرض شريط الإجراءات",
1256-
"project.page.vertical-fixed-tabs.title": "تخطيط الشريط الرأسي",
1257-
"project.page.vertical-fixed-tabs.toggle-labels": "عرض التسميات",
1258-
"project.page.vertical-fixed-tabs.toggle-labels.description": "عرض الوصف على أزرار شريط الإجراءات العمودي",
1259-
"project.page.vertical-fixed-tabs.toggle-sidebar.tooltip": "إخفاء شريط الإجراءات",
1260+
"project.page.vertical-fixed-tabs.toggle-labels": "{show, select, true {إخفاء التسميات} other {إظهار التسميات}}",
12601261
"project.servers.project-servers.description": "يمكنك تشغيل خوادم دفتر ملاحظات مختلفة داخل هذا المشروع بنقرة واحدة. تعمل في نفس البيئة، وتصل إلى نفس الملفات، وتتوقف عندما يتوقف المشروع. يمكنك أيضًا <A>تشغيل خوادمك الخاصة</A>.",
12611262
"project.settings.about-box.description.label": "الوصف (ماركداون)",
12621263
"project.settings.about-box.image.label": "صورة (اختياري)",

src/packages/frontend/i18n/trans/de_DE.json

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@
9393
"account.other-settings.theme.dark_mode.grayscale": "Graustufen",
9494
"account.other-settings.theme.dark_mode.sepia": "Sepia",
9595
"account.other-settings.time_ago_absolute": "Zeige <strong>Zeitstempel als absolute Zeitpunkte</strong> anstatt relativ zur aktuellen Zeit",
96-
"account.other-settings.vbar.title": "Vertikale Projektleiste",
9796
"account.public-path.unpublish.title": "Alles Depublizieren",
9897
"account.public-paths.banner": "Dies ist eine Übersicht Ihrer öffentlichen Dateien. <A>Besuchen Sie diese Seite für weitere Details...</A>",
9998
"account.public-paths.info": "Dateien, die in einem Projekt veröffentlicht wurden, das Sie aktiv genutzt haben.",
@@ -1221,6 +1220,16 @@
12211220
"project.no-internet-modal.message": "Um dies zu beheben, müssen Sie eine <A2>gültige Lizenz</A2> anwenden, die Upgrades bereitstellt oder eine <A3>Lizenz kaufen</A3>.",
12221221
"project.no-internet-modal.title": "Kein Internetzugang",
12231222
"project.open_file.what": "öffne die Datei \"{path}\"",
1223+
"project.page.activity-bar-layout.title": "Layout der Aktivitätsleiste",
1224+
"project.page.activity-bar.explanation": "Diese Funktion ändert die Funktionalität der linken Seitenleiste des Projekts. Standardmäßig werden Schaltflächen für ganze Seiten und kleine Caret-Zeichen für Flyout-Panels angezeigt. Bei Auswahl der Option \"ganze Seiten\" werden nur Schaltflächen angezeigt, die beim Klicken ganze Seiten öffnen. Umgekehrt, wenn die Option \"Flyout-Panels\" gewählt wird, erweitern sich nur Flyout-Panels beim Klicken. In beiden letzteren Fällen kann der alternative Paneltyp durch Shift-Klicken auf die entsprechende Schaltfläche angezeigt werden.",
1225+
"project.page.activity-bar.hide.tooltip": "Aktivitätsleiste ausblenden",
1226+
"project.page.activity-bar.option.both": "Vollständige Seiten und Ausklapp-Panels",
1227+
"project.page.activity-bar.option.flyout": "Schaltflächen wechseln Flyouts",
1228+
"project.page.activity-bar.option.full": "Schaltflächen zeigen ganze Seiten",
1229+
"project.page.activity-bar.show.tooltip": "Aktivitätsleiste anzeigen",
1230+
"project.page.activity-bar.title": "Aktivitätsleiste",
1231+
"project.page.activity-bar.toggle-labels": "{show, select, true {Beschriftungen ausblenden} other {Beschriftungen anzeigen}}",
1232+
"project.page.activity-bar.toggle-labels.description": "Beschreibung auf den Schaltflächen der vertikalen Aktivitätsleiste anzeigen",
12241233
"project.page.ai-generate-document.content.label": "Geben Sie eine detaillierte Beschreibung des {docName}-Dokuments, das Sie erstellen möchten:",
12251234
"project.page.ai-generate-document.content.placeholder": "Inhalt beschreiben...",
12261235
"project.page.ai-generate-document.create_document.what": "erstelle das {docName} Dokument \"{path}\"",
@@ -1248,15 +1257,7 @@
12481257
"project.page.flyouts.new.header_location": "Verzeichnis:",
12491258
"project.page.project-licenses.header": "Quoten und {upgrades}",
12501259
"project.page.project-licenses.intro": "Lizenzen und Pay-as-you-go-Upgrades ändern die Quoten und Funktionen, die einem Projekt zur Verfügung stehen.",
1251-
"project.page.vbar.explanation": "Diese Funktion ändert die Funktionalität der linken Seitenleiste des Projekts. Standardmäßig werden Schaltflächen für ganze Seiten und kleine Caret-Zeichen für Flyout-Panels angezeigt. Bei Auswahl der Option \"ganze Seiten\" werden nur Schaltflächen angezeigt, die beim Klicken ganze Seiten öffnen. Umgekehrt, wenn die Option \"Flyout-Panels\" gewählt wird, erweitern sich nur Flyout-Panels beim Klicken. In beiden letzteren Fällen kann der alternative Paneltyp durch Shift-Klicken auf die entsprechende Schaltfläche angezeigt werden.",
1252-
"project.page.vbar.option.both": "Vollständige Seiten und Ausklapp-Panels",
1253-
"project.page.vbar.option.flyout": "Schaltflächen wechseln Flyouts",
1254-
"project.page.vbar.option.full": "Schaltflächen zeigen ganze Seiten",
1255-
"project.page.vertical-fixed-tabs.show-sidebar.tooltip": "Aktionsleiste anzeigen",
1256-
"project.page.vertical-fixed-tabs.title": "Layout des vertikalen Balken",
1257-
"project.page.vertical-fixed-tabs.toggle-labels": "Beschriftungen anzeigen",
1258-
"project.page.vertical-fixed-tabs.toggle-labels.description": "Zeige die Beschreibung auf den vertikalen Aktionsleisten-Buttons",
1259-
"project.page.vertical-fixed-tabs.toggle-sidebar.tooltip": "Aktionsleiste ausblenden",
1260+
"project.page.vertical-fixed-tabs.toggle-labels": "{show, select, true {Beschriftungen ausblenden} other {Beschriftungen anzeigen}}",
12601261
"project.servers.project-servers.description": "Sie können verschiedene Notebook-Server in diesem Projekt mit einem Klick starten. Sie laufen in derselben Umgebung, haben Zugriff auf dieselben Dateien und stoppen, wenn das Projekt stoppt. Sie können auch <A>Ihren eigenen Server starten</A>.",
12611262
"project.settings.about-box.description.label": "Beschreibung (Markdown)",
12621263
"project.settings.about-box.image.label": "Bild (optional)",

0 commit comments

Comments
 (0)