@plasmicpkgs/plasmic-contentful 0.0.148 → 0.0.150

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/dist/index.d.mts CHANGED
@@ -18,6 +18,7 @@ interface ContentfulFetcherProps {
18
18
  limit?: number;
19
19
  include?: number;
20
20
  order?: string;
21
+ reverseOrder?: boolean;
21
22
  filterField?: string;
22
23
  searchParameter?: string;
23
24
  filterValue?: string | number;
@@ -33,7 +34,7 @@ interface ContentfulFetcherProps {
33
34
  }) => void;
34
35
  }
35
36
  declare const ContentfulFetcherMeta: ComponentMeta<ContentfulFetcherProps>;
36
- declare function ContentfulFetcher({ filterField, filterValue, searchParameter, noAutoRepeat, contentType, children, className, limit, include, noLayout, setControlContextData, }: ContentfulFetcherProps): React.JSX.Element;
37
+ declare function ContentfulFetcher({ filterField, filterValue, searchParameter, noAutoRepeat, contentType, children, className, order, reverseOrder, limit, include, noLayout, setControlContextData, }: ContentfulFetcherProps): React.JSX.Element;
37
38
  interface ContentfulFieldProps {
38
39
  className?: string;
39
40
  objectPath?: (string | number)[];
package/dist/index.d.ts CHANGED
@@ -18,6 +18,7 @@ interface ContentfulFetcherProps {
18
18
  limit?: number;
19
19
  include?: number;
20
20
  order?: string;
21
+ reverseOrder?: boolean;
21
22
  filterField?: string;
22
23
  searchParameter?: string;
23
24
  filterValue?: string | number;
@@ -33,7 +34,7 @@ interface ContentfulFetcherProps {
33
34
  }) => void;
34
35
  }
35
36
  declare const ContentfulFetcherMeta: ComponentMeta<ContentfulFetcherProps>;
36
- declare function ContentfulFetcher({ filterField, filterValue, searchParameter, noAutoRepeat, contentType, children, className, limit, include, noLayout, setControlContextData, }: ContentfulFetcherProps): React.JSX.Element;
37
+ declare function ContentfulFetcher({ filterField, filterValue, searchParameter, noAutoRepeat, contentType, children, className, order, reverseOrder, limit, include, noLayout, setControlContextData, }: ContentfulFetcherProps): React.JSX.Element;
37
38
  interface ContentfulFieldProps {
38
39
  className?: string;
39
40
  objectPath?: (string | number)[];
package/dist/index.js CHANGED
@@ -169,7 +169,7 @@ var ContentfulFetcherMeta = {
169
169
  var _a;
170
170
  return (_a = ctx == null ? void 0 : ctx.fields) != null ? _a : [];
171
171
  },
172
- hidden: (props, ctx) => !props.contentType
172
+ hidden: (props) => !props.contentType
173
173
  },
174
174
  searchParameter: {
175
175
  type: "choice",
@@ -179,13 +179,34 @@ var ContentfulFetcherMeta = {
179
179
  var _a;
180
180
  return (_a = ctx == null ? void 0 : ctx.queryOptions) != null ? _a : [];
181
181
  },
182
- hidden: (props, ctx) => !props.filterField
182
+ hidden: (props) => !props.filterField
183
183
  },
184
184
  filterValue: {
185
185
  type: "string",
186
186
  displayName: "Filter value",
187
187
  description: "Value to filter by, should be of filter field type.",
188
- hidden: (props, ctx) => !props.searchParameter
188
+ hidden: (props) => !props.searchParameter
189
+ },
190
+ order: {
191
+ type: "choice",
192
+ displayName: "Order",
193
+ description: "Field that the entries should be ordered by.",
194
+ options: (props, ctx) => {
195
+ var _a;
196
+ return [
197
+ ...(_a = ctx == null ? void 0 : ctx.fields) != null ? _a : [],
198
+ "sys.createdAt",
199
+ "sys.updatedAt"
200
+ ];
201
+ },
202
+ hidden: (props) => !props.contentType
203
+ },
204
+ reverseOrder: {
205
+ type: "boolean",
206
+ displayName: "Reverse order",
207
+ description: "Reverse the order of the entries.",
208
+ defaultValue: false,
209
+ hidden: (props) => !props.order
189
210
  },
190
211
  limit: {
191
212
  type: "number",
@@ -222,6 +243,8 @@ function ContentfulFetcher({
222
243
  contentType,
223
244
  children,
224
245
  className,
246
+ order,
247
+ reverseOrder,
225
248
  limit,
226
249
  include,
227
250
  noLayout,
@@ -234,6 +257,8 @@ function ContentfulFetcher({
234
257
  );
235
258
  const cacheKey = JSON.stringify({
236
259
  include,
260
+ order,
261
+ reverseOrder,
237
262
  limit,
238
263
  filterField,
239
264
  filterValue,
@@ -253,28 +278,53 @@ function ContentfulFetcher({
253
278
  setControlContextData == null ? void 0 : setControlContextData({
254
279
  types: (_a = contentTypes == null ? void 0 : contentTypes.items) != null ? _a : []
255
280
  });
281
+ function setOrderField(searchParams) {
282
+ if (order) {
283
+ searchParams.set(
284
+ "order",
285
+ `${reverseOrder ? "-" : ""}${order.startsWith("sys.") ? order : `fields.${order}`}`
286
+ );
287
+ }
288
+ }
256
289
  const { data: entriesData } = (0, import_query.usePlasmicQueryData)(
257
290
  contentType ? `${cacheKey}/${contentType}/entriesData` : null,
258
291
  async () => {
259
- let query = `/spaces/${creds.space}/environments/${creds.environment}/entries?access_token=${creds.accessToken}&content_type=${contentType}`;
292
+ const path = `/spaces/${creds.space}/environments/${creds.environment}/entries`;
293
+ const searchParams = new URLSearchParams();
294
+ searchParams.set("access_token", creds.accessToken);
295
+ searchParams.set("content_type", contentType);
260
296
  if (limit) {
261
- query = `${query}&limit=${limit}`;
297
+ searchParams.set("limit", limit.toString());
262
298
  }
299
+ setOrderField(searchParams);
263
300
  if (include) {
264
- query = `${query}&include=${include}`;
301
+ searchParams.set("include", include.toString());
265
302
  }
266
- const resp = await fetch(`${baseUrl}${query}`);
303
+ const resp = await fetch(`${baseUrl}${path}?${searchParams.toString()}`);
267
304
  return resp.json();
268
305
  }
269
306
  );
270
307
  const { data: filteredData } = (0, import_query.usePlasmicQueryData)(
271
308
  contentType && filterField && filterValue ? `${cacheKey}/${contentType}/filteredData` : null,
272
309
  async () => {
273
- let query = `/spaces/${creds.space}/environments/${creds.environment}/entries?access_token=${creds.accessToken}&content_type=${contentType}&fields.${filterField}${searchParameter}=${filterValue}`;
310
+ const path = `/spaces/${creds.space}/environments/${creds.environment}/entries`;
311
+ const searchParams = new URLSearchParams();
312
+ searchParams.set("access_token", creds.accessToken);
313
+ searchParams.set("content_type", contentType);
314
+ if (limit) {
315
+ searchParams.set("limit", limit.toString());
316
+ }
317
+ setOrderField(searchParams);
274
318
  if (include) {
275
- query = `${query}&include=${include}`;
319
+ searchParams.set("include", include.toString());
320
+ }
321
+ if (filterField && searchParameter && filterValue) {
322
+ searchParams.set(
323
+ `fields.${filterField}${searchParameter}`,
324
+ filterValue.toString()
325
+ );
276
326
  }
277
- const resp = await fetch(`${baseUrl}${query}`);
327
+ const resp = await fetch(`${baseUrl}${path}?${searchParams.toString()}`);
278
328
  return resp.json();
279
329
  }
280
330
  );
package/dist/index.mjs CHANGED
@@ -132,7 +132,7 @@ var ContentfulFetcherMeta = {
132
132
  var _a;
133
133
  return (_a = ctx == null ? void 0 : ctx.fields) != null ? _a : [];
134
134
  },
135
- hidden: (props, ctx) => !props.contentType
135
+ hidden: (props) => !props.contentType
136
136
  },
137
137
  searchParameter: {
138
138
  type: "choice",
@@ -142,13 +142,34 @@ var ContentfulFetcherMeta = {
142
142
  var _a;
143
143
  return (_a = ctx == null ? void 0 : ctx.queryOptions) != null ? _a : [];
144
144
  },
145
- hidden: (props, ctx) => !props.filterField
145
+ hidden: (props) => !props.filterField
146
146
  },
147
147
  filterValue: {
148
148
  type: "string",
149
149
  displayName: "Filter value",
150
150
  description: "Value to filter by, should be of filter field type.",
151
- hidden: (props, ctx) => !props.searchParameter
151
+ hidden: (props) => !props.searchParameter
152
+ },
153
+ order: {
154
+ type: "choice",
155
+ displayName: "Order",
156
+ description: "Field that the entries should be ordered by.",
157
+ options: (props, ctx) => {
158
+ var _a;
159
+ return [
160
+ ...(_a = ctx == null ? void 0 : ctx.fields) != null ? _a : [],
161
+ "sys.createdAt",
162
+ "sys.updatedAt"
163
+ ];
164
+ },
165
+ hidden: (props) => !props.contentType
166
+ },
167
+ reverseOrder: {
168
+ type: "boolean",
169
+ displayName: "Reverse order",
170
+ description: "Reverse the order of the entries.",
171
+ defaultValue: false,
172
+ hidden: (props) => !props.order
152
173
  },
153
174
  limit: {
154
175
  type: "number",
@@ -185,6 +206,8 @@ function ContentfulFetcher({
185
206
  contentType,
186
207
  children,
187
208
  className,
209
+ order,
210
+ reverseOrder,
188
211
  limit,
189
212
  include,
190
213
  noLayout,
@@ -197,6 +220,8 @@ function ContentfulFetcher({
197
220
  );
198
221
  const cacheKey = JSON.stringify({
199
222
  include,
223
+ order,
224
+ reverseOrder,
200
225
  limit,
201
226
  filterField,
202
227
  filterValue,
@@ -216,28 +241,53 @@ function ContentfulFetcher({
216
241
  setControlContextData == null ? void 0 : setControlContextData({
217
242
  types: (_a = contentTypes == null ? void 0 : contentTypes.items) != null ? _a : []
218
243
  });
244
+ function setOrderField(searchParams) {
245
+ if (order) {
246
+ searchParams.set(
247
+ "order",
248
+ `${reverseOrder ? "-" : ""}${order.startsWith("sys.") ? order : `fields.${order}`}`
249
+ );
250
+ }
251
+ }
219
252
  const { data: entriesData } = usePlasmicQueryData(
220
253
  contentType ? `${cacheKey}/${contentType}/entriesData` : null,
221
254
  async () => {
222
- let query = `/spaces/${creds.space}/environments/${creds.environment}/entries?access_token=${creds.accessToken}&content_type=${contentType}`;
255
+ const path = `/spaces/${creds.space}/environments/${creds.environment}/entries`;
256
+ const searchParams = new URLSearchParams();
257
+ searchParams.set("access_token", creds.accessToken);
258
+ searchParams.set("content_type", contentType);
223
259
  if (limit) {
224
- query = `${query}&limit=${limit}`;
260
+ searchParams.set("limit", limit.toString());
225
261
  }
262
+ setOrderField(searchParams);
226
263
  if (include) {
227
- query = `${query}&include=${include}`;
264
+ searchParams.set("include", include.toString());
228
265
  }
229
- const resp = await fetch(`${baseUrl}${query}`);
266
+ const resp = await fetch(`${baseUrl}${path}?${searchParams.toString()}`);
230
267
  return resp.json();
231
268
  }
232
269
  );
233
270
  const { data: filteredData } = usePlasmicQueryData(
234
271
  contentType && filterField && filterValue ? `${cacheKey}/${contentType}/filteredData` : null,
235
272
  async () => {
236
- let query = `/spaces/${creds.space}/environments/${creds.environment}/entries?access_token=${creds.accessToken}&content_type=${contentType}&fields.${filterField}${searchParameter}=${filterValue}`;
273
+ const path = `/spaces/${creds.space}/environments/${creds.environment}/entries`;
274
+ const searchParams = new URLSearchParams();
275
+ searchParams.set("access_token", creds.accessToken);
276
+ searchParams.set("content_type", contentType);
277
+ if (limit) {
278
+ searchParams.set("limit", limit.toString());
279
+ }
280
+ setOrderField(searchParams);
237
281
  if (include) {
238
- query = `${query}&include=${include}`;
282
+ searchParams.set("include", include.toString());
283
+ }
284
+ if (filterField && searchParameter && filterValue) {
285
+ searchParams.set(
286
+ `fields.${filterField}${searchParameter}`,
287
+ filterValue.toString()
288
+ );
239
289
  }
240
- const resp = await fetch(`${baseUrl}${query}`);
290
+ const resp = await fetch(`${baseUrl}${path}?${searchParams.toString()}`);
241
291
  return resp.json();
242
292
  }
243
293
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasmicpkgs/plasmic-contentful",
3
- "version": "0.0.148",
3
+ "version": "0.0.150",
4
4
  "description": "Plasmic Contentful components.",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -32,7 +32,7 @@
32
32
  }
33
33
  ],
34
34
  "devDependencies": {
35
- "@plasmicapp/host": "1.0.207",
35
+ "@plasmicapp/host": "1.0.208",
36
36
  "@plasmicapp/query": "0.1.79",
37
37
  "@size-limit/preset-small-lib": "^7.0.8",
38
38
  "@types/dlv": "^1.1.2",
@@ -52,5 +52,5 @@
52
52
  "change-case": "^4.1.2",
53
53
  "dlv": "^1.1.3"
54
54
  },
55
- "gitHead": "9097835f7f37064c7aeefbdcdbf7d2ba0ca652c9"
55
+ "gitHead": "879304149b902b453a47fe674997fcad01ae4af8"
56
56
  }