Compare commits
2 Commits
4cb2d085ca
...
b56b41996b
| Author | SHA1 | Date | |
|---|---|---|---|
| b56b41996b | |||
| 7b9e072713 |
@@ -136,7 +136,7 @@ general:
|
||||
# auto_off_minutes: 15
|
||||
# timeout: 5.0 # seconds before a hung command is killed
|
||||
|
||||
# The clock overlay (Einfg on the kiosk keyboard, Guide on the remote). Optional; these
|
||||
# The clock overlay (Pos1 on the kiosk keyboard, Guide on the remote). Optional; these
|
||||
# are the defaults. On school days a bus countdown shows for bus_lead_minutes before
|
||||
# bus_time. School days skip weekends and the school and public holidays of
|
||||
# `subdivision`, fetched daily from openholidaysapi.org and cached under
|
||||
|
||||
@@ -190,14 +190,13 @@ function BrowseViewImpl({
|
||||
/>
|
||||
<div
|
||||
ref={scroller}
|
||||
className={ANIMATE_VIEW_TRANSITIONS ? "view-enter" : undefined}
|
||||
className={`no-scrollbar${ANIMATE_VIEW_TRANSITIONS ? " view-enter" : ""}`}
|
||||
// Right padding reserves room for the tab rail's own glass bar (see
|
||||
// TAB_RAIL_CLEARANCE) so a full-width shelf row never renders under it. The
|
||||
// three rows fit the screen, so no vertical scrollbar: each row scrolls
|
||||
// sideways on its own.
|
||||
// vertical scrollbar is hidden, but the wheel and touch still scroll.
|
||||
style={{
|
||||
flex: 1,
|
||||
overflow: "hidden",
|
||||
overflow: "auto",
|
||||
minHeight: 0,
|
||||
padding: `14px ${TAB_RAIL_CLEARANCE}px 250px 32px`,
|
||||
}}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* minus the mascot swimming through the scene (too distracting for a clock you read
|
||||
* at a glance).
|
||||
*
|
||||
* Mounted for as long as the app is, and only hidden: Einfg and the remote's Guide key
|
||||
* Mounted for as long as the app is, and only hidden: Pos1 and the remote's Guide key
|
||||
* have to show it at once, not after a first render. The second ticker only runs while
|
||||
* it is on screen. Any click closes it. */
|
||||
|
||||
|
||||
@@ -522,14 +522,14 @@ describe("Del", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("Einfg", () => {
|
||||
describe("Pos1", () => {
|
||||
it("toggles the clock, on every page", () => {
|
||||
for (const page of ["music", "room", "typing", "parents"] as const) {
|
||||
expect(press("Insert", { ...initialUiState, page })).toContainEqual({
|
||||
expect(press("Home", { ...initialUiState, page })).toContainEqual({
|
||||
type: "ui",
|
||||
patch: { showClock: true },
|
||||
});
|
||||
expect(press("Insert", { ...initialUiState, page, showClock: true })).toContainEqual({
|
||||
expect(press("Home", { ...initialUiState, page, showClock: true })).toContainEqual({
|
||||
type: "ui",
|
||||
patch: { showClock: false },
|
||||
});
|
||||
|
||||
@@ -269,9 +269,9 @@ export function handleKey(
|
||||
// another room.
|
||||
if (key === "Delete" && !event.ctrlKey && !event.metaKey) return [{ type: "screen" }];
|
||||
|
||||
// Einfg, right next to it: the clock, over whatever is on screen - the typing tab
|
||||
// Pos1, in the same block: the clock, over whatever is on screen - the typing tab
|
||||
// included, like Del, since no lesson drills it either.
|
||||
if (key === "Insert" && !event.ctrlKey && !event.metaKey) {
|
||||
if (key === "Home" && !event.ctrlKey && !event.metaKey) {
|
||||
return [{ type: "pop", freq: 520 }, { type: "ui", patch: { showClock: !state.showClock } }];
|
||||
}
|
||||
|
||||
|
||||
@@ -273,11 +273,17 @@ button {
|
||||
focused. */
|
||||
padding: 14px 10px 14px;
|
||||
cursor: grab;
|
||||
}
|
||||
|
||||
/* Scrolls by wheel, touch and keyboard, but draws no scrollbar. */
|
||||
.shelf-row,
|
||||
.no-scrollbar {
|
||||
scrollbar-width: none; /* Firefox */
|
||||
-ms-overflow-style: none; /* old Edge */
|
||||
}
|
||||
|
||||
.shelf-row::-webkit-scrollbar {
|
||||
.shelf-row::-webkit-scrollbar,
|
||||
.no-scrollbar::-webkit-scrollbar {
|
||||
display: none; /* Chrome, Safari */
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user