@stoker-platform/web-app 0.5.79 → 0.5.80

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,13 @@
1
1
  # @stoker-platform/web-app
2
2
 
3
+ ## 0.5.80
4
+
5
+ ### Patch Changes
6
+
7
+ - fix: improve board card header padding
8
+ - fix: account for excluded status values
9
+ - fix: fix photo upload closure issue
10
+
3
11
  ## 0.5.79
4
12
 
5
13
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stoker-platform/web-app",
3
- "version": "0.5.79",
3
+ "version": "0.5.80",
4
4
  "type": "module",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "scripts": {
package/src/Cards.tsx CHANGED
@@ -218,7 +218,13 @@ function CardItem({ index, style, data }: CardItemProps) {
218
218
  )}
219
219
  onClick={() => goToRecord(collection, record)}
220
220
  >
221
- <div id={`${statusValue}-${record.id}-header`} className="grid gap-0.5 p-6">
221
+ <div
222
+ id={`${statusValue}-${record.id}-header`}
223
+ className={cn(
224
+ "grid gap-0.5 p-6",
225
+ ((!isPending && !isDisabled && hasUpdateAccess) || isPending) && "pr-0",
226
+ )}
227
+ >
222
228
  <button
223
229
  className={cn(
224
230
  titleClass,
@@ -255,7 +261,7 @@ function CardItem({ index, style, data }: CardItemProps) {
255
261
  </div>
256
262
  )
257
263
  ) : (
258
- <div className="ml-auto relative bottom-1.5 p-6">
264
+ <div className="ml-auto relative bottom-1.5 p-6 pl-4">
259
265
  <LoadingSpinner size={7} />
260
266
  </div>
261
267
  )}
@@ -424,7 +424,7 @@ function Collection({
424
424
  const getKeysLength = useCallback(() => {
425
425
  let length = 1
426
426
  if (tab === "cards") {
427
- length = statusValues.current?.length || 1
427
+ length = (statusValues.current?.length || 1) - (cardsConfig?.excludeValues?.length || 0)
428
428
  if (!isPreloadCacheEnabled && !isServerReadOnly) {
429
429
  length++
430
430
  }
package/src/Form.tsx CHANGED
@@ -2596,8 +2596,13 @@ function RecordForm({
2596
2596
  )
2597
2597
 
2598
2598
  const handlePermissionsConfirm = useCallback(
2599
- async (selectedPermissions: FilePermissions) => {
2600
- if (permissionsContext === "files") {
2599
+ async (
2600
+ selectedPermissions: FilePermissions,
2601
+ contextOverride?: "files" | "image-create" | "image-update",
2602
+ imageUpdateOverrides?: { pendingImage: { fieldName: string; file: File }; resolver: () => void },
2603
+ ) => {
2604
+ const context = contextOverride ?? permissionsContext
2605
+ if (context === "files") {
2601
2606
  if (isMultipleFileUpload) {
2602
2607
  if (pendingUploadFiles.length > 0) {
2603
2608
  setQueuedUploads((prev) => [
@@ -2627,7 +2632,7 @@ function RecordForm({
2627
2632
  return
2628
2633
  }
2629
2634
 
2630
- if (permissionsContext === "image-create") {
2635
+ if (context === "image-create") {
2631
2636
  if (!pendingUploadFile || !pendingImageFieldName) return
2632
2637
  setQueuedImageUploads((prev) => ({
2633
2638
  ...prev,
@@ -2642,9 +2647,11 @@ function RecordForm({
2642
2647
  return
2643
2648
  }
2644
2649
 
2645
- if (permissionsContext === "image-update") {
2646
- if (!pendingImageForUpdate || !id || !currentUser) return
2647
- const { fieldName, file } = pendingImageForUpdate
2650
+ if (context === "image-update") {
2651
+ const effectivePendingImage = imageUpdateOverrides?.pendingImage ?? pendingImageForUpdate
2652
+ const effectiveResolver = imageUpdateOverrides?.resolver ?? imageUpdateResolver
2653
+ if (!effectivePendingImage || !id || !currentUser) return
2654
+ const { fieldName, file } = effectivePendingImage
2648
2655
  const basePath = computeBasePath(id)
2649
2656
  const filename = file.name.trim()
2650
2657
  const validationError = validateStorageName(filename)
@@ -2653,9 +2660,9 @@ function RecordForm({
2653
2660
  setShowPermissionsDialog(false)
2654
2661
  setPendingImageForUpdate(null)
2655
2662
  setPermissionsContext("files")
2656
- if (imageUpdateResolver) {
2663
+ if (effectiveResolver) {
2657
2664
  setIsUploading((prev) => ({ ...prev, [fieldName]: false }))
2658
- imageUpdateResolver()
2665
+ effectiveResolver()
2659
2666
  }
2660
2667
  return
2661
2668
  }
@@ -2689,9 +2696,9 @@ function RecordForm({
2689
2696
  setShowPermissionsDialog(false)
2690
2697
  setPendingImageForUpdate(null)
2691
2698
  setPermissionsContext("files")
2692
- if (imageUpdateResolver) {
2699
+ if (effectiveResolver) {
2693
2700
  setIsUploading((prev) => ({ ...prev, [fieldName]: false }))
2694
- imageUpdateResolver()
2701
+ effectiveResolver()
2695
2702
  }
2696
2703
  return
2697
2704
  }
@@ -2733,9 +2740,9 @@ function RecordForm({
2733
2740
  setShowPermissionsDialog(false)
2734
2741
  setPendingImageForUpdate(null)
2735
2742
  setPermissionsContext("files")
2736
- if (imageUpdateResolver) {
2743
+ if (effectiveResolver) {
2737
2744
  setIsUploading((prev) => ({ ...prev, [fieldName]: false }))
2738
- imageUpdateResolver()
2745
+ effectiveResolver()
2739
2746
  }
2740
2747
  return
2741
2748
  }
@@ -2786,7 +2793,10 @@ function RecordForm({
2786
2793
  setIsMultipleFileUpload(false)
2787
2794
  setImageUpdateResolver(() => resolve)
2788
2795
  if (shouldSkipPermissionsDialog()) {
2789
- setTimeout(() => handlePermissionsConfirm(getDefaultPermissions()), 0)
2796
+ handlePermissionsConfirm(getDefaultPermissions(), "image-update", {
2797
+ pendingImage: { fieldName, file },
2798
+ resolver: resolve,
2799
+ })
2790
2800
  } else {
2791
2801
  setShowPermissionsDialog(true)
2792
2802
  }