From 16c10790dd607b25829a0109d5e5a26e8c2c0935 Mon Sep 17 00:00:00 2001
From: Alexander Polyankin <alexander.polyankin@metabase.com>
Date: Thu, 4 Aug 2022 16:21:11 +0300
Subject: [PATCH] Fix dashboard printing (#24585)

---
 frontend/src/metabase/components/ExplicitSize.jsx |  9 +++++++--
 frontend/src/metabase/css/core/base.css           | 11 +++++++++++
 frontend/src/metabase/css/dashboard.css           | 11 -----------
 3 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/frontend/src/metabase/components/ExplicitSize.jsx b/frontend/src/metabase/components/ExplicitSize.jsx
index ffbfce13e89..57e2e01d0e5 100644
--- a/frontend/src/metabase/components/ExplicitSize.jsx
+++ b/frontend/src/metabase/components/ExplicitSize.jsx
@@ -84,6 +84,11 @@ export default ({ selector, wrapped, refreshMode = "throttle" } = {}) =>
         this._refreshMode = nextMode;
       };
 
+      _updateSizeAndRefreshMode = () => {
+        this._updateRefreshMode();
+        this._updateSize();
+      };
+
       // ResizeObserver, ensure re-layout when container element changes size
       _initResizeObserver() {
         this._currentElement = this._getElement();
@@ -107,13 +112,13 @@ export default ({ selector, wrapped, refreshMode = "throttle" } = {}) =>
       _initMediaQueryListener() {
         this._printMediaQuery?.addEventListener(
           "change",
-          this._updateRefreshMode,
+          this._updateSizeAndRefreshMode,
         );
       }
       _teardownQueryMediaListener() {
         this._printMediaQuery?.removeEventListener(
           "change",
-          this._updateRefreshMode,
+          this._updateSizeAndRefreshMode,
         );
       }
 
diff --git a/frontend/src/metabase/css/core/base.css b/frontend/src/metabase/css/core/base.css
index 59fa90c60d2..487275f4ade 100644
--- a/frontend/src/metabase/css/core/base.css
+++ b/frontend/src/metabase/css/core/base.css
@@ -9,6 +9,17 @@ html {
   width: 100%;
 }
 
+@media print and (orientation: portrait) {
+  html {
+    width: 8.5in;
+  }
+}
+@media print and (orientation: landscape) {
+  html {
+    width: 11in;
+  }
+}
+
 body {
   font-family: var(--default-font-family), sans-serif;
   font-size: var(--default-font-size);
diff --git a/frontend/src/metabase/css/dashboard.css b/frontend/src/metabase/css/dashboard.css
index 653f5a46f31..87027a6b910 100644
--- a/frontend/src/metabase/css/dashboard.css
+++ b/frontend/src/metabase/css/dashboard.css
@@ -293,17 +293,6 @@
   }
 }
 
-@media print and (orientation: portrait) {
-  html {
-    width: 8.5in;
-  }
-}
-@media print and (orientation: landscape) {
-  html {
-    width: 11in;
-  }
-}
-
 @page {
   margin: 1cm;
 }
-- 
GitLab