@developer_tribe/react-builder 0.1.24 → 0.1.25

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.
@@ -68,48 +68,82 @@ export type List<T> = T extends keyof Types ? Types[T] : never;
68
68
 
69
69
  export function getDefaults<T extends keyof Types>(
70
70
  type: T,
71
- _node: NodeData<List<T>>,
71
+ node: NodeData<List<T>>,
72
72
  ): Partial<Types[T]> {
73
+ let defaults: Partial<Types[T]> = {};
74
+
73
75
  switch (type as unknown as string) {
74
76
  case 'button':
75
- return getButtonDefaults() as Partial<Types[T]>;
77
+ defaults = getButtonDefaults() as Partial<Types[T]>;
78
+ break;
76
79
  case 'carousel':
77
- return getCarouselDefaults() as Partial<Types[T]>;
80
+ defaults = getCarouselDefaults() as Partial<Types[T]>;
81
+ break;
78
82
  case 'carouselButtons':
79
- return getCarouselButtonsDefaults() as Partial<Types[T]>;
83
+ defaults = getCarouselButtonsDefaults() as Partial<Types[T]>;
84
+ break;
80
85
  case 'carouselDots':
81
- return getCarouselDotsDefaults() as Partial<Types[T]>;
86
+ defaults = getCarouselDotsDefaults() as Partial<Types[T]>;
87
+ break;
82
88
  case 'carouselItem':
83
- return getCarouselItemDefaults() as Partial<Types[T]>;
89
+ defaults = getCarouselItemDefaults() as Partial<Types[T]>;
90
+ break;
84
91
  case 'carouselProvider':
85
- return getCarouselProviderDefaults() as Partial<Types[T]>;
92
+ defaults = getCarouselProviderDefaults() as Partial<Types[T]>;
93
+ break;
86
94
  case 'image':
87
- return getImageDefaults() as Partial<Types[T]>;
95
+ defaults = getImageDefaults() as Partial<Types[T]>;
96
+ break;
88
97
  case 'Onboard':
89
- return getOnboardDefaults() as Partial<Types[T]>;
98
+ defaults = getOnboardDefaults() as Partial<Types[T]>;
99
+ break;
90
100
  case 'OnboardButton':
91
- return getOnboardButtonDefaults() as Partial<Types[T]>;
101
+ defaults = getOnboardButtonDefaults() as Partial<Types[T]>;
102
+ break;
92
103
  case 'OnboardButtons':
93
- return getOnboardButtonsDefaults() as Partial<Types[T]>;
104
+ defaults = getOnboardButtonsDefaults() as Partial<Types[T]>;
105
+ break;
94
106
  case 'OnboardDot':
95
- return getOnboardDotDefaults() as Partial<Types[T]>;
107
+ defaults = getOnboardDotDefaults() as Partial<Types[T]>;
108
+ break;
96
109
  case 'OnboardFooter':
97
- return getOnboardFooterDefaults() as Partial<Types[T]>;
110
+ defaults = getOnboardFooterDefaults() as Partial<Types[T]>;
111
+ break;
98
112
  case 'OnboardImage':
99
- return getOnboardImageDefaults() as Partial<Types[T]>;
113
+ defaults = getOnboardImageDefaults() as Partial<Types[T]>;
114
+ break;
100
115
  case 'OnboardItem':
101
- return getOnboardItemDefaults() as Partial<Types[T]>;
116
+ defaults = getOnboardItemDefaults() as Partial<Types[T]>;
117
+ break;
102
118
  case 'OnboardProvider':
103
- return getOnboardProviderDefaults() as Partial<Types[T]>;
119
+ defaults = getOnboardProviderDefaults() as Partial<Types[T]>;
120
+ break;
104
121
  case 'OnboardSubtitle':
105
- return getOnboardSubtitleDefaults() as Partial<Types[T]>;
122
+ defaults = getOnboardSubtitleDefaults() as Partial<Types[T]>;
123
+ break;
106
124
  case 'OnboardTitle':
107
- return getOnboardTitleDefaults() as Partial<Types[T]>;
125
+ defaults = getOnboardTitleDefaults() as Partial<Types[T]>;
126
+ break;
108
127
  case 'text':
109
- return getTextDefaults() as Partial<Types[T]>;
128
+ defaults = getTextDefaults() as Partial<Types[T]>;
129
+ break;
110
130
  case 'view':
111
- return getViewDefaults() as Partial<Types[T]>;
131
+ defaults = getViewDefaults() as Partial<Types[T]>;
132
+ break;
112
133
  default:
113
- return {};
134
+ defaults = {} as Partial<Types[T]>;
135
+ }
136
+
137
+ if (
138
+ (node as unknown as { type?: string })?.type !== (type as unknown as string)
139
+ ) {
140
+ throw new Error(
141
+ `getDefaults: node.type mismatch; expected ${String(type)}, received ${(node as unknown as { type?: string })?.type ?? 'undefined'}`,
142
+ );
114
143
  }
144
+
145
+ (node as unknown as { attributes?: unknown }).attributes =
146
+ defaults as Types[T];
147
+
148
+ return defaults;
115
149
  }
@@ -2,6 +2,8 @@
2
2
 
3
3
  export { default as RenderNode } from './RenderNode.generated';
4
4
 
5
+ export { getDefaults } from './getDefaults';
6
+
5
7
  export type {
6
8
  ButtonPropsGenerated,
7
9
  ButtonComponentProps,
@@ -6,7 +6,7 @@ export interface Device {
6
6
  type: 'phone' | 'tablet';
7
7
  /**
8
8
  * Relative importance for generic targeting and display ordering.
9
- * 1 = highest importance, 5 = lowest importance
9
+ * 1 = highest importance, 100 = lowest importance
10
10
  */
11
- importance?: 1 | 2 | 3 | 4 | 5;
11
+ importance?: number;
12
12
  }
@@ -2,5 +2,11 @@ import { Device } from '../types/Device';
2
2
  import devices from '../assets/devices.json';
3
3
 
4
4
  export function getDevices(): Device[] {
5
- return devices as Device[];
5
+ const deviceList = (devices as Device[]).slice();
6
+ deviceList.sort((a, b) => {
7
+ const ai = a.importance ?? 999;
8
+ const bi = b.importance ?? 999;
9
+ return ai - bi;
10
+ });
11
+ return deviceList;
6
12
  }