@tradly/asset 1.0.23 → 1.0.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.
@@ -148,6 +148,13 @@ var MediaApiService = /*#__PURE__*/function () {
148
148
  mimeTypeParam = Array.isArray(mimeTypes) ? mimeTypes.join(",") : mimeTypes;
149
149
  params.mime_type = mimeTypeParam;
150
150
  }
151
+ console.log("params", {
152
+ method: "GET",
153
+ path: "/v1/media",
154
+ params: params,
155
+ setISLoading: setISLoading,
156
+ isLoading: isLoading
157
+ });
151
158
  return _context2.a(2, this.apiCall({
152
159
  method: "GET",
153
160
  path: "/v1/media",
@@ -387,10 +394,15 @@ var MediaApiService = /*#__PURE__*/function () {
387
394
  break;
388
395
  }
389
396
  _context5.p = 3;
397
+ console.log("upload_full_files", upload_full_files);
398
+ // Step 1: Get signed URLs from API
390
399
  _context5.n = 4;
391
400
  return this.getS3SignedUrls(upload_full_files, auth_key);
392
401
  case 4:
393
402
  responseFiles = _context5.v;
403
+ console.log("responseFiles", responseFiles);
404
+
405
+ // Step 2: Upload each file to S3
394
406
  index = 0;
395
407
  case 5:
396
408
  if (!(index < responseFiles.length)) {
@@ -142,6 +142,13 @@ var MediaApiService = /*#__PURE__*/function () {
142
142
  mimeTypeParam = Array.isArray(mimeTypes) ? mimeTypes.join(",") : mimeTypes;
143
143
  params.mime_type = mimeTypeParam;
144
144
  }
145
+ console.log("params", {
146
+ method: "GET",
147
+ path: "/v1/media",
148
+ params: params,
149
+ setISLoading: setISLoading,
150
+ isLoading: isLoading
151
+ });
145
152
  return _context2.a(2, this.apiCall({
146
153
  method: "GET",
147
154
  path: "/v1/media",
@@ -381,10 +388,15 @@ var MediaApiService = /*#__PURE__*/function () {
381
388
  break;
382
389
  }
383
390
  _context5.p = 3;
391
+ console.log("upload_full_files", upload_full_files);
392
+ // Step 1: Get signed URLs from API
384
393
  _context5.n = 4;
385
394
  return this.getS3SignedUrls(upload_full_files, auth_key);
386
395
  case 4:
387
396
  responseFiles = _context5.v;
397
+ console.log("responseFiles", responseFiles);
398
+
399
+ // Step 2: Upload each file to S3
388
400
  index = 0;
389
401
  case 5:
390
402
  if (!(index < responseFiles.length)) {
@@ -171,6 +171,11 @@ var FileUpload = function FileUpload(_ref) {
171
171
  return mimeMap[ext] || "image/jpeg";
172
172
  };
173
173
  var mimeType = pickerResult.mimeType || pickerResult.type || getMimeType(fileName, null);
174
+ console.log("mimeType", {
175
+ fileName: fileName,
176
+ mimeType: mimeType,
177
+ pickerResult: pickerResult
178
+ });
174
179
  return {
175
180
  uri: uri,
176
181
  name: fileName,
@@ -1,24 +1,32 @@
1
1
  import React from "react";
2
- import { View, StyleSheet, Dimensions, ActivityIndicator } from "react-native";
2
+ import { View, StyleSheet, Dimensions, ActivityIndicator, FlatList } from "react-native";
3
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
4
  var _Dimensions$get = Dimensions.get("window"),
5
5
  SCREEN_WIDTH = _Dimensions$get.width;
6
6
  var NUM_COLUMNS = 3;
7
7
  var ITEM_MARGIN = 4; // Match MediaGallery margin
8
- // Calculate item size accounting for:
8
+ // Calculate item size - must match MediaGallery exactly
9
9
  // - Container padding (md = 12px on each side = 24px total)
10
10
  // - Grid padding (2px on each side = 4px total)
11
- // - Item margins between items (4px * 2 gaps = 8px total)
11
+ // - Item margins: (NUM_COLUMNS - 1) gaps between items
12
+ // Each gap = 2 * ITEM_MARGIN (left margin of right item + right margin of left item)
13
+ // Total: (3 - 1) * 2 * 4 = 16px
12
14
  var CONTAINER_PADDING = 24; // paddingHorizontal md (12 * 2)
13
15
  var GRID_PADDING = 4; // padding 2 on each side (2 * 2)
14
- var TOTAL_MARGINS = ITEM_MARGIN * (NUM_COLUMNS - 1) * 2; // margins between items (4px * 2 gaps = 8px)
16
+ var TOTAL_MARGINS = ITEM_MARGIN * (NUM_COLUMNS - 1) * 2; // 4 * 2 * 2 = 16px
15
17
  var ITEM_SIZE = (SCREEN_WIDTH - CONTAINER_PADDING - GRID_PADDING - TOTAL_MARGINS) / NUM_COLUMNS;
16
18
  var ImagesSkeleton = function ImagesSkeleton(_ref) {
17
19
  var _ref$per_page = _ref.per_page,
18
20
  per_page = _ref$per_page === void 0 ? 30 : _ref$per_page;
19
- var skeletonItems = [];
20
- for (var i = 0; i < per_page; i++) {
21
- skeletonItems.push(/*#__PURE__*/_jsx(View, {
21
+ var skeletonData = Array.from({
22
+ length: per_page
23
+ }, function (_, i) {
24
+ return {
25
+ id: i
26
+ };
27
+ });
28
+ var renderItem = function renderItem() {
29
+ return /*#__PURE__*/_jsx(View, {
22
30
  style: [styles.skeletonItem, {
23
31
  width: ITEM_SIZE,
24
32
  height: ITEM_SIZE,
@@ -28,17 +36,21 @@ var ImagesSkeleton = function ImagesSkeleton(_ref) {
28
36
  size: "small",
29
37
  color: "#3B3269"
30
38
  })
31
- }, i));
32
- }
33
- return /*#__PURE__*/_jsx(View, {
34
- style: styles.container,
35
- children: skeletonItems
39
+ });
40
+ };
41
+ return /*#__PURE__*/_jsx(FlatList, {
42
+ data: skeletonData,
43
+ renderItem: renderItem,
44
+ keyExtractor: function keyExtractor(item) {
45
+ return "skeleton-".concat(item.id);
46
+ },
47
+ numColumns: NUM_COLUMNS,
48
+ contentContainerStyle: styles.grid,
49
+ showsVerticalScrollIndicator: false
36
50
  });
37
51
  };
38
52
  var styles = StyleSheet.create({
39
- container: {
40
- flexDirection: "row",
41
- flexWrap: "wrap",
53
+ grid: {
42
54
  padding: 2 // Match MediaGallery grid padding
43
55
  },
44
56
  skeletonItem: {
@@ -176,6 +176,11 @@ var FileUpload = function FileUpload(_ref) {
176
176
  return mimeMap[ext] || "image/jpeg";
177
177
  };
178
178
  var mimeType = pickerResult.mimeType || pickerResult.type || getMimeType(fileName, null);
179
+ console.log("mimeType", {
180
+ fileName: fileName,
181
+ mimeType: mimeType,
182
+ pickerResult: pickerResult
183
+ });
179
184
  return {
180
185
  uri: uri,
181
186
  name: fileName,
@@ -12,20 +12,28 @@ var _Dimensions$get = _reactNative.Dimensions.get("window"),
12
12
  SCREEN_WIDTH = _Dimensions$get.width;
13
13
  var NUM_COLUMNS = 3;
14
14
  var ITEM_MARGIN = 4; // Match MediaGallery margin
15
- // Calculate item size accounting for:
15
+ // Calculate item size - must match MediaGallery exactly
16
16
  // - Container padding (md = 12px on each side = 24px total)
17
17
  // - Grid padding (2px on each side = 4px total)
18
- // - Item margins between items (4px * 2 gaps = 8px total)
18
+ // - Item margins: (NUM_COLUMNS - 1) gaps between items
19
+ // Each gap = 2 * ITEM_MARGIN (left margin of right item + right margin of left item)
20
+ // Total: (3 - 1) * 2 * 4 = 16px
19
21
  var CONTAINER_PADDING = 24; // paddingHorizontal md (12 * 2)
20
22
  var GRID_PADDING = 4; // padding 2 on each side (2 * 2)
21
- var TOTAL_MARGINS = ITEM_MARGIN * (NUM_COLUMNS - 1) * 2; // margins between items (4px * 2 gaps = 8px)
23
+ var TOTAL_MARGINS = ITEM_MARGIN * (NUM_COLUMNS - 1) * 2; // 4 * 2 * 2 = 16px
22
24
  var ITEM_SIZE = (SCREEN_WIDTH - CONTAINER_PADDING - GRID_PADDING - TOTAL_MARGINS) / NUM_COLUMNS;
23
25
  var ImagesSkeleton = function ImagesSkeleton(_ref) {
24
26
  var _ref$per_page = _ref.per_page,
25
27
  per_page = _ref$per_page === void 0 ? 30 : _ref$per_page;
26
- var skeletonItems = [];
27
- for (var i = 0; i < per_page; i++) {
28
- skeletonItems.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
28
+ var skeletonData = Array.from({
29
+ length: per_page
30
+ }, function (_, i) {
31
+ return {
32
+ id: i
33
+ };
34
+ });
35
+ var renderItem = function renderItem() {
36
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
29
37
  style: [styles.skeletonItem, {
30
38
  width: ITEM_SIZE,
31
39
  height: ITEM_SIZE,
@@ -35,17 +43,21 @@ var ImagesSkeleton = function ImagesSkeleton(_ref) {
35
43
  size: "small",
36
44
  color: "#3B3269"
37
45
  })
38
- }, i));
39
- }
40
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
41
- style: styles.container,
42
- children: skeletonItems
46
+ });
47
+ };
48
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.FlatList, {
49
+ data: skeletonData,
50
+ renderItem: renderItem,
51
+ keyExtractor: function keyExtractor(item) {
52
+ return "skeleton-".concat(item.id);
53
+ },
54
+ numColumns: NUM_COLUMNS,
55
+ contentContainerStyle: styles.grid,
56
+ showsVerticalScrollIndicator: false
43
57
  });
44
58
  };
45
59
  var styles = _reactNative.StyleSheet.create({
46
- container: {
47
- flexDirection: "row",
48
- flexWrap: "wrap",
60
+ grid: {
49
61
  padding: 2 // Match MediaGallery grid padding
50
62
  },
51
63
  skeletonItem: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tradly/asset",
3
- "version": "1.0.23",
3
+ "version": "1.0.25",
4
4
  "description": "A reusable media gallery component for uploading and selecting images, videos, and files with Tradly authentication",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/esm/index.js",