You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by yj...@apache.org on 2021/01/25 04:31:10 UTC
[superset] branch master updated: chore(explore): Save Resizable
width to localStorage (#12593)
This is an automated email from the ASF dual-hosted git repository.
yjc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new bcbd8f9 chore(explore): Save Resizable width to localStorage (#12593)
bcbd8f9 is described below
commit bcbd8f93261fb599a109af011d70685fccbeb2b1
Author: Nikola Gigić <ni...@gmail.com>
AuthorDate: Mon Jan 25 05:30:09 2021 +0100
chore(explore): Save Resizable width to localStorage (#12593)
---
.../explore/components/ExploreViewContainer.jsx | 47 ++++++++++++++++++++--
1 file changed, 43 insertions(+), 4 deletions(-)
diff --git a/superset-frontend/src/explore/components/ExploreViewContainer.jsx b/superset-frontend/src/explore/components/ExploreViewContainer.jsx
index 5ea90a2..990373a 100644
--- a/superset-frontend/src/explore/components/ExploreViewContainer.jsx
+++ b/superset-frontend/src/explore/components/ExploreViewContainer.jsx
@@ -169,6 +169,16 @@ function ExploreViewContainer(props) {
? `${props.forcedHeight}px`
: `${windowSize.height - navHeight}px`;
+ const storageKeys = {
+ controlsWidth: 'controls_width',
+ dataSourceWidth: 'datasource_width',
+ };
+
+ const defaultSidebarsWidth = {
+ controls_width: 320,
+ datasource_width: 300,
+ };
+
function addHistory({ isReplace = false, title } = {}) {
const payload = { ...props.form_data };
const longUrl = getExploreLongUrl(
@@ -368,6 +378,23 @@ function ExploreViewContainer(props) {
);
}
+ function getSidebarWidths(key) {
+ try {
+ return localStorage.getItem(key) || defaultSidebarsWidth[key];
+ } catch {
+ return defaultSidebarsWidth[key];
+ }
+ }
+
+ function setSidebarWidths(key, dimension) {
+ try {
+ const newDimension = Number(getSidebarWidths(key)) + dimension.width;
+ localStorage.setItem(key, newDimension);
+ } catch {
+ // Catch in case localStorage is unavailable
+ }
+ }
+
if (props.standalone) {
return renderChartContainer();
}
@@ -407,8 +434,14 @@ function ExploreViewContainer(props) {
/>
)}
<Resizable
- defaultSize={{ width: 300, height: '100%' }}
- minWidth={300}
+ onResizeStop={(evt, direction, ref, d) =>
+ setSidebarWidths(storageKeys.dataSourceWidth, d)
+ }
+ defaultSize={{
+ width: getSidebarWidths(storageKeys.dataSourceWidth),
+ height: '100%',
+ }}
+ minWidth={defaultSidebarsWidth[storageKeys.dataSourceWidth]}
maxWidth="33%"
enable={{ right: true }}
className={
@@ -459,8 +492,14 @@ function ExploreViewContainer(props) {
</div>
) : null}
<Resizable
- defaultSize={{ width: 320, height: '100%' }}
- minWidth={320}
+ onResizeStop={(evt, direction, ref, d) =>
+ setSidebarWidths(storageKeys.controlsWidth, d)
+ }
+ defaultSize={{
+ width: getSidebarWidths(storageKeys.controlsWidth),
+ height: '100%',
+ }}
+ minWidth={defaultSidebarsWidth[storageKeys.controlsWidth]}
maxWidth="33%"
enable={{ right: true }}
className="col-sm-3 explore-column controls-column"