(core) support ?embed=true and &style=light for a clean embed experience

Summary:
This adds query parameters useful for tailoring the Grist experience, with an eye to embedding.

Setting `style=light` removes side and top bars, as a first pass at a focused view of a single document page (this would benefit from refining).

Setting `embed=true` has no significant effect just yet other than it restricts document access to viewer at most (this can be overridden by specifying `/m/default`).

Test Plan: added tests

Reviewers: dsagal

Reviewed By: dsagal

Differential Revision: https://phab.getgrist.com/D2585
This commit is contained in:
Paul Fitzpatrick
2020-08-14 12:40:39 -04:00
parent 48ca124f23
commit 20d8124f45
10 changed files with 415 additions and 4 deletions

View File

@@ -63,6 +63,7 @@ export function pagePanels(page: PageContents) {
cssMainPane(
cssTopHeader(
testId('top-header'),
(left.hideOpener ? null :
cssPanelOpener('PanelRight', cssPanelOpener.cls('-open', left.panelOpen),
testId('left-opener'),
@@ -144,6 +145,9 @@ export const cssLeftPane = styled(cssVBox, `
display: none;
}
}
.interface-light & {
display: none;
}
`);
const cssMainPane = styled(cssVBox, `
position: relative;
@@ -170,6 +174,9 @@ const cssRightPane = styled(cssVBox, `
display: none;
}
}
.interface-light & {
display: none;
}
`);
const cssTopHeader = styled('div', `
height: 48px;
@@ -184,6 +191,10 @@ const cssTopHeader = styled('div', `
display: none;
}
}
.interface-light & {
display: none;
}
`);
const cssResizeFlexVHandle = styled(resizeFlexVHandle, `
--resize-handle-color: ${colors.mediumGrey};