react-resizable-panels 0.0.48 → 0.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.0.49
4
+ * Improved development warnings and props validation checks in `PanelGroup`.
5
+
3
6
  ## 0.0.48
4
7
  * [148](https://github.com/bvaughn/react-resizable-panels/pull/148): Build release bundle with Preconstruct
5
8
 
@@ -762,13 +762,6 @@ function savePanelGroupLayout(autoSaveId, panels, sizes, storage) {
762
762
  }
763
763
  }
764
764
 
765
- function isServerRendering() {
766
- try {
767
- return typeof window === undefined;
768
- } catch (error) {}
769
- return true;
770
- }
771
-
772
765
  const debounceMap = {};
773
766
 
774
767
  // PanelGroup might be rendering in a server-side environment where localStorage is not available
@@ -958,10 +951,10 @@ function PanelGroupWithForwardedRef({
958
951
  totalDefaultSize += panel.current.defaultSize;
959
952
  }
960
953
  });
961
- if (totalDefaultSize > 100) {
962
- throw new Error(`The sum of the defaultSize of all panels in a group cannot exceed 100.`);
954
+ if (totalDefaultSize > 100 || panelsWithNullDefaultSize === 0 && totalDefaultSize !== 100) {
955
+ throw new Error(`Invalid default sizes specified for panels`);
963
956
  } else if (totalMinSize > 100) {
964
- throw new Error(`The sum of the minSize of all panels in a group cannot exceed 100.`);
957
+ throw new Error(`Invalid minimum sizes specified for panels`);
965
958
  }
966
959
  setSizes(panelsArray.map(panel => {
967
960
  if (panel.current.defaultSize === null) {
@@ -995,9 +988,6 @@ function PanelGroupWithForwardedRef({
995
988
  // This includes server rendering.
996
989
  // At this point the best we can do is render everything with the same size.
997
990
  if (panels.size === 0) {
998
- if (isServerRendering() && defaultSize == null) {
999
- console.warn(`WARNING: Panel defaultSize prop recommended to avoid layout shift after server rendering`);
1000
- }
1001
991
  return {
1002
992
  flexBasis: 0,
1003
993
  flexGrow: defaultSize != null ? defaultSize : undefined,
@@ -958,10 +958,10 @@ function PanelGroupWithForwardedRef({
958
958
  totalDefaultSize += panel.current.defaultSize;
959
959
  }
960
960
  });
961
- if (totalDefaultSize > 100) {
962
- throw new Error(`The sum of the defaultSize of all panels in a group cannot exceed 100.`);
961
+ if (totalDefaultSize > 100 || panelsWithNullDefaultSize === 0 && totalDefaultSize !== 100) {
962
+ throw new Error(`Invalid default sizes specified for panels`);
963
963
  } else if (totalMinSize > 100) {
964
- throw new Error(`The sum of the minSize of all panels in a group cannot exceed 100.`);
964
+ throw new Error(`Invalid minimum sizes specified for panels`);
965
965
  }
966
966
  setSizes(panelsArray.map(panel => {
967
967
  if (panel.current.defaultSize === null) {
@@ -995,8 +995,10 @@ function PanelGroupWithForwardedRef({
995
995
  // This includes server rendering.
996
996
  // At this point the best we can do is render everything with the same size.
997
997
  if (panels.size === 0) {
998
- if (isServerRendering() && defaultSize == null) {
999
- console.warn(`WARNING: Panel defaultSize prop recommended to avoid layout shift after server rendering`);
998
+ {
999
+ if (isServerRendering() && defaultSize == null) {
1000
+ console.warn(`WARNING: Panel defaultSize prop recommended to avoid layout shift after server rendering`);
1001
+ }
1000
1002
  }
1001
1003
  return {
1002
1004
  flexBasis: 0,
@@ -934,10 +934,10 @@ function PanelGroupWithForwardedRef({
934
934
  totalDefaultSize += panel.current.defaultSize;
935
935
  }
936
936
  });
937
- if (totalDefaultSize > 100) {
938
- throw new Error(`The sum of the defaultSize of all panels in a group cannot exceed 100.`);
937
+ if (totalDefaultSize > 100 || panelsWithNullDefaultSize === 0 && totalDefaultSize !== 100) {
938
+ throw new Error(`Invalid default sizes specified for panels`);
939
939
  } else if (totalMinSize > 100) {
940
- throw new Error(`The sum of the minSize of all panels in a group cannot exceed 100.`);
940
+ throw new Error(`Invalid minimum sizes specified for panels`);
941
941
  }
942
942
  setSizes(panelsArray.map(panel => {
943
943
  if (panel.current.defaultSize === null) {
@@ -971,8 +971,10 @@ function PanelGroupWithForwardedRef({
971
971
  // This includes server rendering.
972
972
  // At this point the best we can do is render everything with the same size.
973
973
  if (panels.size === 0) {
974
- if (isServerRendering() && defaultSize == null) {
975
- console.warn(`WARNING: Panel defaultSize prop recommended to avoid layout shift after server rendering`);
974
+ {
975
+ if (isServerRendering() && defaultSize == null) {
976
+ console.warn(`WARNING: Panel defaultSize prop recommended to avoid layout shift after server rendering`);
977
+ }
976
978
  }
977
979
  return {
978
980
  flexBasis: 0,
@@ -738,13 +738,6 @@ function savePanelGroupLayout(autoSaveId, panels, sizes, storage) {
738
738
  }
739
739
  }
740
740
 
741
- function isServerRendering() {
742
- try {
743
- return typeof window === undefined;
744
- } catch (error) {}
745
- return true;
746
- }
747
-
748
741
  const debounceMap = {};
749
742
 
750
743
  // PanelGroup might be rendering in a server-side environment where localStorage is not available
@@ -934,10 +927,10 @@ function PanelGroupWithForwardedRef({
934
927
  totalDefaultSize += panel.current.defaultSize;
935
928
  }
936
929
  });
937
- if (totalDefaultSize > 100) {
938
- throw new Error(`The sum of the defaultSize of all panels in a group cannot exceed 100.`);
930
+ if (totalDefaultSize > 100 || panelsWithNullDefaultSize === 0 && totalDefaultSize !== 100) {
931
+ throw new Error(`Invalid default sizes specified for panels`);
939
932
  } else if (totalMinSize > 100) {
940
- throw new Error(`The sum of the minSize of all panels in a group cannot exceed 100.`);
933
+ throw new Error(`Invalid minimum sizes specified for panels`);
941
934
  }
942
935
  setSizes(panelsArray.map(panel => {
943
936
  if (panel.current.defaultSize === null) {
@@ -971,9 +964,6 @@ function PanelGroupWithForwardedRef({
971
964
  // This includes server rendering.
972
965
  // At this point the best we can do is render everything with the same size.
973
966
  if (panels.size === 0) {
974
- if (isServerRendering() && defaultSize == null) {
975
- console.warn(`WARNING: Panel defaultSize prop recommended to avoid layout shift after server rendering`);
976
- }
977
967
  return {
978
968
  flexBasis: 0,
979
969
  flexGrow: defaultSize != null ? defaultSize : undefined,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-resizable-panels",
3
- "version": "0.0.48",
3
+ "version": "0.0.49",
4
4
  "description": "React components for resizable panel groups/layouts",
5
5
  "author": "Brian Vaughn <brian.david.vaughn@gmail.com>",
6
6
  "license": "MIT",
package/src/PanelGroup.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { isDevelopment } from "#is-development";
1
2
  import {
2
3
  createElement,
3
4
  CSSProperties,
@@ -291,14 +292,13 @@ function PanelGroupWithForwardedRef({
291
292
  }
292
293
  });
293
294
 
294
- if (totalDefaultSize > 100) {
295
- throw new Error(
296
- `The sum of the defaultSize of all panels in a group cannot exceed 100.`
297
- );
295
+ if (
296
+ totalDefaultSize > 100 ||
297
+ (panelsWithNullDefaultSize === 0 && totalDefaultSize !== 100)
298
+ ) {
299
+ throw new Error(`Invalid default sizes specified for panels`);
298
300
  } else if (totalMinSize > 100) {
299
- throw new Error(
300
- `The sum of the minSize of all panels in a group cannot exceed 100.`
301
- );
301
+ throw new Error(`Invalid minimum sizes specified for panels`);
302
302
  }
303
303
 
304
304
  setSizes(
@@ -338,10 +338,12 @@ function PanelGroupWithForwardedRef({
338
338
  // This includes server rendering.
339
339
  // At this point the best we can do is render everything with the same size.
340
340
  if (panels.size === 0) {
341
- if (isServerRendering() && defaultSize == null) {
342
- console.warn(
343
- `WARNING: Panel defaultSize prop recommended to avoid layout shift after server rendering`
344
- );
341
+ if (isDevelopment) {
342
+ if (isServerRendering() && defaultSize == null) {
343
+ console.warn(
344
+ `WARNING: Panel defaultSize prop recommended to avoid layout shift after server rendering`
345
+ );
346
+ }
345
347
  }
346
348
 
347
349
  return {