@bosonprotocol/react-kit 0.33.0-alpha.2 → 0.33.0-alpha.20
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/cjs/components/buttons/BaseButton.d.ts +1 -0
- package/dist/cjs/components/buttons/BaseButton.d.ts.map +1 -1
- package/dist/cjs/components/buttons/BaseButton.js +1 -0
- package/dist/cjs/components/buttons/BaseButton.js.map +1 -1
- package/dist/cjs/components/error/SimpleError.d.ts +2 -2
- package/dist/cjs/components/error/SimpleError.d.ts.map +1 -1
- package/dist/cjs/components/error/SimpleError.js.map +1 -1
- package/dist/cjs/components/form/BaseCheckbox.d.ts +5 -0
- package/dist/cjs/components/form/BaseCheckbox.d.ts.map +1 -0
- package/dist/cjs/components/form/BaseCheckbox.js +69 -0
- package/dist/cjs/components/form/BaseCheckbox.js.map +1 -0
- package/dist/cjs/components/form/Checkbox.d.ts +13 -2
- package/dist/cjs/components/form/Checkbox.d.ts.map +1 -1
- package/dist/cjs/components/form/Checkbox.js +18 -61
- package/dist/cjs/components/form/Checkbox.js.map +1 -1
- package/dist/cjs/components/form/CountrySelect.d.ts +26 -11
- package/dist/cjs/components/form/CountrySelect.d.ts.map +1 -1
- package/dist/cjs/components/form/CountrySelect.js +64 -31
- package/dist/cjs/components/form/CountrySelect.js.map +1 -1
- package/dist/cjs/components/form/Field.styles.d.ts +36 -2
- package/dist/cjs/components/form/Field.styles.d.ts.map +1 -1
- package/dist/cjs/components/form/Field.styles.js +83 -24
- package/dist/cjs/components/form/Field.styles.js.map +1 -1
- package/dist/cjs/components/form/FormField.d.ts +2 -1
- package/dist/cjs/components/form/FormField.d.ts.map +1 -1
- package/dist/cjs/components/form/FormField.js +14 -2
- package/dist/cjs/components/form/FormField.js.map +1 -1
- package/dist/cjs/components/form/Select.d.ts +2 -1
- package/dist/cjs/components/form/Select.d.ts.map +1 -1
- package/dist/cjs/components/form/Select.js +32 -20
- package/dist/cjs/components/form/Select.js.map +1 -1
- package/dist/cjs/components/form/Upload/BaseUpload.d.ts +71 -0
- package/dist/cjs/components/form/Upload/BaseUpload.d.ts.map +1 -0
- package/dist/cjs/components/form/Upload/BaseUpload.js +264 -0
- package/dist/cjs/components/form/Upload/BaseUpload.js.map +1 -0
- package/dist/cjs/components/form/Upload/Upload.d.ts +3 -41
- package/dist/cjs/components/form/Upload/Upload.d.ts.map +1 -1
- package/dist/cjs/components/form/Upload/Upload.js +7 -258
- package/dist/cjs/components/form/Upload/Upload.js.map +1 -1
- package/dist/cjs/components/form/Upload/UploadedFile.js +2 -2
- package/dist/cjs/components/form/Upload/UploadedFile.js.map +1 -1
- package/dist/cjs/components/form/Upload/WithUploadToIpfs.d.ts.map +1 -1
- package/dist/cjs/components/form/Upload/WithUploadToIpfs.js +9 -12
- package/dist/cjs/components/form/Upload/WithUploadToIpfs.js.map +1 -1
- package/dist/cjs/components/form/index.d.ts +6 -4
- package/dist/cjs/components/form/index.d.ts.map +1 -1
- package/dist/cjs/components/form/index.js +7 -3
- package/dist/cjs/components/form/index.js.map +1 -1
- package/dist/cjs/components/form/types.d.ts +31 -3
- package/dist/cjs/components/form/types.d.ts.map +1 -1
- package/dist/cjs/components/image/Image.js +2 -2
- package/dist/cjs/components/image/Image.js.map +1 -1
- package/dist/cjs/components/image/Image.styles.d.ts +2 -1
- package/dist/cjs/components/image/Image.styles.d.ts.map +1 -1
- package/dist/cjs/components/image/Image.styles.js +2 -2
- package/dist/cjs/components/image/Image.styles.js.map +1 -1
- package/dist/cjs/components/modal/components/Commit/DetailView/InnerCommitDetailView.js +3 -3
- package/dist/cjs/components/modal/components/Commit/DetailView/InnerCommitDetailView.js.map +1 -1
- package/dist/cjs/components/modal/components/Redeem/ExchangeView/RedeemSuccess.js +3 -3
- package/dist/cjs/components/modal/components/Redeem/ExchangeView/RedeemSuccess.js.map +1 -1
- package/dist/cjs/components/modal/components/common/OfferFullDescription/DigitalProductData.js +2 -2
- package/dist/cjs/components/modal/components/common/OfferFullDescription/DigitalProductData.js.map +1 -1
- package/dist/cjs/components/modal/components/common/detail/DetailSlider.js +2 -2
- package/dist/cjs/components/modal/components/common/detail/DetailSlider.js.map +1 -1
- package/dist/cjs/components/modal/components/common/detail/PhygitalProduct.js +2 -2
- package/dist/cjs/components/modal/components/common/detail/PhygitalProduct.js.map +1 -1
- package/dist/cjs/components/modal/components/common/detail/SlickSlider.js +2 -2
- package/dist/cjs/components/modal/components/common/detail/SlickSlider.js.map +1 -1
- package/dist/cjs/components/ui/CardCTA.d.ts +21 -0
- package/dist/cjs/components/ui/CardCTA.d.ts.map +1 -0
- package/dist/cjs/components/ui/CardCTA.js +77 -0
- package/dist/cjs/components/ui/CardCTA.js.map +1 -0
- package/dist/cjs/components/ui/Grid.d.ts.map +1 -1
- package/dist/cjs/components/ui/Grid.js +22 -21
- package/dist/cjs/components/ui/Grid.js.map +1 -1
- package/dist/cjs/components/ui/IpfsImage.d.ts +5 -4
- package/dist/cjs/components/ui/IpfsImage.d.ts.map +1 -1
- package/dist/cjs/components/ui/IpfsImage.js +4 -3
- package/dist/cjs/components/ui/IpfsImage.js.map +1 -1
- package/dist/cjs/components/ui/Typography.d.ts.map +1 -1
- package/dist/cjs/components/ui/Typography.js +29 -28
- package/dist/cjs/components/ui/Typography.js.map +1 -1
- package/dist/cjs/components/ui/Video.d.ts +3 -3
- package/dist/cjs/components/ui/Video.d.ts.map +1 -1
- package/dist/cjs/components/ui/Video.js +26 -14
- package/dist/cjs/components/ui/Video.js.map +1 -1
- package/dist/cjs/components/ui/common.d.ts +2 -0
- package/dist/cjs/components/ui/common.d.ts.map +1 -0
- package/dist/cjs/components/ui/common.js +6 -0
- package/dist/cjs/components/ui/common.js.map +1 -0
- package/dist/cjs/components/wallet/ConnectButton.js +2 -2
- package/dist/cjs/components/wallet/ConnectButton.js.map +1 -1
- package/dist/cjs/components/widgets/finance/convertion-rate/ConvertionRateContext.js +2 -2
- package/dist/cjs/components/widgets/finance/convertion-rate/ConvertionRateContext.js.map +1 -1
- package/dist/cjs/components/widgets/finance/convertion-rate/ConvertionRateProvider.js +2 -2
- package/dist/cjs/components/widgets/finance/convertion-rate/ConvertionRateProvider.js.map +1 -1
- package/dist/cjs/components/widgets/finance/useOffersBacked.js +1 -1
- package/dist/cjs/components/widgets/finance/useOffersBacked.js.map +1 -1
- package/dist/cjs/hooks/core-sdk/useCoreSdk.d.ts.map +1 -1
- package/dist/cjs/hooks/core-sdk/useCoreSdk.js +2 -2
- package/dist/cjs/hooks/core-sdk/useCoreSdk.js.map +1 -1
- package/dist/cjs/hooks/form/useForm.d.ts +55 -0
- package/dist/cjs/hooks/form/useForm.d.ts.map +1 -0
- package/dist/cjs/hooks/form/useForm.js +11 -0
- package/dist/cjs/hooks/form/useForm.js.map +1 -0
- package/dist/cjs/hooks/index.d.ts +5 -0
- package/dist/cjs/hooks/index.d.ts.map +1 -1
- package/dist/cjs/hooks/index.js +5 -0
- package/dist/cjs/hooks/index.js.map +1 -1
- package/dist/cjs/hooks/ipfs/useIpfsStorage.d.ts +2 -0
- package/dist/cjs/hooks/ipfs/useIpfsStorage.d.ts.map +1 -0
- package/dist/cjs/hooks/ipfs/useIpfsStorage.js +14 -0
- package/dist/cjs/hooks/ipfs/useIpfsStorage.js.map +1 -0
- package/dist/cjs/hooks/location/buildUseSearchParams.d.ts +12 -0
- package/dist/cjs/hooks/location/buildUseSearchParams.d.ts.map +1 -0
- package/dist/cjs/hooks/location/buildUseSearchParams.js +36 -0
- package/dist/cjs/hooks/location/buildUseSearchParams.js.map +1 -0
- package/dist/cjs/{components/widgets/finance/storage/useLocalStorage.d.ts → hooks/storage/useBosonLocalStorage.d.ts} +3 -3
- package/dist/cjs/hooks/storage/useBosonLocalStorage.d.ts.map +1 -0
- package/dist/cjs/hooks/storage/useBosonLocalStorage.js +22 -0
- package/dist/cjs/hooks/storage/useBosonLocalStorage.js.map +1 -0
- package/dist/cjs/hooks/storage/useLocalStorage.d.ts +6 -0
- package/dist/cjs/hooks/storage/useLocalStorage.d.ts.map +1 -0
- package/dist/cjs/hooks/storage/useLocalStorage.js.map +1 -0
- package/dist/cjs/hooks/useIpfsMetadataStorage.d.ts.map +1 -1
- package/dist/cjs/hooks/useIpfsMetadataStorage.js +1 -1
- package/dist/cjs/hooks/useIpfsMetadataStorage.js.map +1 -1
- package/dist/cjs/index.d.ts +6 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +8 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/bytes/bytesToSize.d.ts +1 -1
- package/dist/cjs/lib/bytes/bytesToSize.d.ts.map +1 -1
- package/dist/cjs/lib/bytes/bytesToSize.js +2 -1
- package/dist/cjs/lib/bytes/bytesToSize.js.map +1 -1
- package/dist/cjs/lib/const/chainInfo.d.ts.map +1 -1
- package/dist/cjs/lib/const/chainInfo.js +10 -0
- package/dist/cjs/lib/const/chainInfo.js.map +1 -1
- package/dist/cjs/lib/url/url.d.ts +1 -0
- package/dist/cjs/lib/url/url.d.ts.map +1 -1
- package/dist/cjs/lib/url/url.js +2 -1
- package/dist/cjs/lib/url/url.js.map +1 -1
- package/dist/cjs/types/helpers.d.ts +3 -0
- package/dist/cjs/types/helpers.d.ts.map +1 -1
- package/dist/cjs/types/helpers.js.map +1 -1
- package/dist/esm/components/buttons/BaseButton.d.ts +1 -0
- package/dist/esm/components/buttons/BaseButton.d.ts.map +1 -1
- package/dist/esm/components/buttons/BaseButton.js +1 -0
- package/dist/esm/components/buttons/BaseButton.js.map +1 -1
- package/dist/esm/components/error/SimpleError.d.ts +2 -2
- package/dist/esm/components/error/SimpleError.d.ts.map +1 -1
- package/dist/esm/components/error/SimpleError.js.map +1 -1
- package/dist/esm/components/form/BaseCheckbox.d.ts +5 -0
- package/dist/esm/components/form/BaseCheckbox.d.ts.map +1 -0
- package/dist/esm/components/form/BaseCheckbox.js +27 -0
- package/dist/esm/components/form/BaseCheckbox.js.map +1 -0
- package/dist/esm/components/form/Checkbox.d.ts +13 -2
- package/dist/esm/components/form/Checkbox.d.ts.map +1 -1
- package/dist/esm/components/form/Checkbox.js +16 -25
- package/dist/esm/components/form/Checkbox.js.map +1 -1
- package/dist/esm/components/form/CountrySelect.d.ts +26 -11
- package/dist/esm/components/form/CountrySelect.d.ts.map +1 -1
- package/dist/esm/components/form/CountrySelect.js +97 -67
- package/dist/esm/components/form/CountrySelect.js.map +1 -1
- package/dist/esm/components/form/Field.styles.d.ts +36 -2
- package/dist/esm/components/form/Field.styles.d.ts.map +1 -1
- package/dist/esm/components/form/Field.styles.js +58 -20
- package/dist/esm/components/form/Field.styles.js.map +1 -1
- package/dist/esm/components/form/FormField.d.ts +2 -1
- package/dist/esm/components/form/FormField.d.ts.map +1 -1
- package/dist/esm/components/form/FormField.js +2 -2
- package/dist/esm/components/form/FormField.js.map +1 -1
- package/dist/esm/components/form/Select.d.ts +2 -1
- package/dist/esm/components/form/Select.d.ts.map +1 -1
- package/dist/esm/components/form/Select.js +52 -30
- package/dist/esm/components/form/Select.js.map +1 -1
- package/dist/esm/components/form/Upload/BaseUpload.d.ts +71 -0
- package/dist/esm/components/form/Upload/BaseUpload.d.ts.map +1 -0
- package/dist/esm/components/form/Upload/BaseUpload.js +226 -0
- package/dist/esm/components/form/Upload/BaseUpload.js.map +1 -0
- package/dist/esm/components/form/Upload/Upload.d.ts +3 -41
- package/dist/esm/components/form/Upload/Upload.d.ts.map +1 -1
- package/dist/esm/components/form/Upload/Upload.js +5 -225
- package/dist/esm/components/form/Upload/Upload.js.map +1 -1
- package/dist/esm/components/form/Upload/UploadedFile.js +1 -1
- package/dist/esm/components/form/Upload/UploadedFile.js.map +1 -1
- package/dist/esm/components/form/Upload/WithUploadToIpfs.d.ts.map +1 -1
- package/dist/esm/components/form/Upload/WithUploadToIpfs.js +8 -11
- package/dist/esm/components/form/Upload/WithUploadToIpfs.js.map +1 -1
- package/dist/esm/components/form/index.d.ts +6 -4
- package/dist/esm/components/form/index.d.ts.map +1 -1
- package/dist/esm/components/form/index.js +4 -2
- package/dist/esm/components/form/index.js.map +1 -1
- package/dist/esm/components/form/types.d.ts +31 -3
- package/dist/esm/components/form/types.d.ts.map +1 -1
- package/dist/esm/components/image/Image.js +2 -2
- package/dist/esm/components/image/Image.js.map +1 -1
- package/dist/esm/components/image/Image.styles.d.ts +2 -1
- package/dist/esm/components/image/Image.styles.d.ts.map +1 -1
- package/dist/esm/components/image/Image.styles.js +2 -2
- package/dist/esm/components/image/Image.styles.js.map +1 -1
- package/dist/esm/components/modal/components/Commit/DetailView/InnerCommitDetailView.js +1 -1
- package/dist/esm/components/modal/components/Commit/DetailView/InnerCommitDetailView.js.map +1 -1
- package/dist/esm/components/modal/components/Redeem/ExchangeView/RedeemSuccess.js +1 -1
- package/dist/esm/components/modal/components/Redeem/ExchangeView/RedeemSuccess.js.map +1 -1
- package/dist/esm/components/modal/components/common/OfferFullDescription/DigitalProductData.js +1 -1
- package/dist/esm/components/modal/components/common/OfferFullDescription/DigitalProductData.js.map +1 -1
- package/dist/esm/components/modal/components/common/detail/DetailSlider.js +1 -1
- package/dist/esm/components/modal/components/common/detail/DetailSlider.js.map +1 -1
- package/dist/esm/components/modal/components/common/detail/PhygitalProduct.js +1 -1
- package/dist/esm/components/modal/components/common/detail/PhygitalProduct.js.map +1 -1
- package/dist/esm/components/modal/components/common/detail/SlickSlider.js +1 -1
- package/dist/esm/components/modal/components/common/detail/SlickSlider.js.map +1 -1
- package/dist/esm/components/ui/CardCTA.d.ts +21 -0
- package/dist/esm/components/ui/CardCTA.d.ts.map +1 -0
- package/dist/esm/components/ui/CardCTA.js +35 -0
- package/dist/esm/components/ui/CardCTA.js.map +1 -0
- package/dist/esm/components/ui/Grid.d.ts.map +1 -1
- package/dist/esm/components/ui/Grid.js +22 -21
- package/dist/esm/components/ui/Grid.js.map +1 -1
- package/dist/esm/components/ui/IpfsImage.d.ts +5 -4
- package/dist/esm/components/ui/IpfsImage.d.ts.map +1 -1
- package/dist/esm/components/ui/IpfsImage.js +3 -4
- package/dist/esm/components/ui/IpfsImage.js.map +1 -1
- package/dist/esm/components/ui/Typography.d.ts.map +1 -1
- package/dist/esm/components/ui/Typography.js +29 -28
- package/dist/esm/components/ui/Typography.js.map +1 -1
- package/dist/esm/components/ui/Video.d.ts +3 -3
- package/dist/esm/components/ui/Video.d.ts.map +1 -1
- package/dist/esm/components/ui/Video.js +24 -14
- package/dist/esm/components/ui/Video.js.map +1 -1
- package/dist/esm/components/ui/common.d.ts +2 -0
- package/dist/esm/components/ui/common.d.ts.map +1 -0
- package/dist/esm/components/ui/common.js +2 -0
- package/dist/esm/components/ui/common.js.map +1 -0
- package/dist/esm/components/wallet/ConnectButton.js +1 -1
- package/dist/esm/components/wallet/ConnectButton.js.map +1 -1
- package/dist/esm/components/widgets/finance/convertion-rate/ConvertionRateContext.js +1 -1
- package/dist/esm/components/widgets/finance/convertion-rate/ConvertionRateContext.js.map +1 -1
- package/dist/esm/components/widgets/finance/convertion-rate/ConvertionRateProvider.js +1 -1
- package/dist/esm/components/widgets/finance/convertion-rate/ConvertionRateProvider.js.map +1 -1
- package/dist/esm/components/widgets/finance/useOffersBacked.js +1 -1
- package/dist/esm/components/widgets/finance/useOffersBacked.js.map +1 -1
- package/dist/esm/hooks/core-sdk/useCoreSdk.d.ts.map +1 -1
- package/dist/esm/hooks/core-sdk/useCoreSdk.js +3 -3
- package/dist/esm/hooks/core-sdk/useCoreSdk.js.map +1 -1
- package/dist/esm/hooks/form/useForm.d.ts +55 -0
- package/dist/esm/hooks/form/useForm.d.ts.map +1 -0
- package/dist/esm/hooks/form/useForm.js +10 -0
- package/dist/esm/hooks/form/useForm.js.map +1 -0
- package/dist/esm/hooks/index.d.ts +5 -0
- package/dist/esm/hooks/index.d.ts.map +1 -1
- package/dist/esm/hooks/index.js +5 -0
- package/dist/esm/hooks/index.js.map +1 -1
- package/dist/esm/hooks/ipfs/useIpfsStorage.d.ts +2 -0
- package/dist/esm/hooks/ipfs/useIpfsStorage.d.ts.map +1 -0
- package/dist/esm/hooks/ipfs/useIpfsStorage.js +10 -0
- package/dist/esm/hooks/ipfs/useIpfsStorage.js.map +1 -0
- package/dist/esm/hooks/location/buildUseSearchParams.d.ts +12 -0
- package/dist/esm/hooks/location/buildUseSearchParams.d.ts.map +1 -0
- package/dist/esm/hooks/location/buildUseSearchParams.js +32 -0
- package/dist/esm/hooks/location/buildUseSearchParams.js.map +1 -0
- package/dist/esm/{components/widgets/finance/storage/useLocalStorage.d.ts → hooks/storage/useBosonLocalStorage.d.ts} +3 -3
- package/dist/esm/hooks/storage/useBosonLocalStorage.d.ts.map +1 -0
- package/dist/esm/hooks/storage/useBosonLocalStorage.js +15 -0
- package/dist/esm/hooks/storage/useBosonLocalStorage.js.map +1 -0
- package/dist/esm/hooks/storage/useLocalStorage.d.ts +6 -0
- package/dist/esm/hooks/storage/useLocalStorage.d.ts.map +1 -0
- package/dist/esm/hooks/storage/useLocalStorage.js.map +1 -0
- package/dist/esm/hooks/useIpfsMetadataStorage.d.ts.map +1 -1
- package/dist/esm/hooks/useIpfsMetadataStorage.js +2 -2
- package/dist/esm/hooks/useIpfsMetadataStorage.js.map +1 -1
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/bytes/bytesToSize.d.ts +1 -1
- package/dist/esm/lib/bytes/bytesToSize.d.ts.map +1 -1
- package/dist/esm/lib/bytes/bytesToSize.js +1 -1
- package/dist/esm/lib/bytes/bytesToSize.js.map +1 -1
- package/dist/esm/lib/const/chainInfo.d.ts.map +1 -1
- package/dist/esm/lib/const/chainInfo.js +10 -0
- package/dist/esm/lib/const/chainInfo.js.map +1 -1
- package/dist/esm/lib/url/url.d.ts +1 -0
- package/dist/esm/lib/url/url.d.ts.map +1 -1
- package/dist/esm/lib/url/url.js +1 -0
- package/dist/esm/lib/url/url.js.map +1 -1
- package/dist/esm/types/helpers.d.ts +3 -0
- package/dist/esm/types/helpers.d.ts.map +1 -1
- package/dist/esm/types/helpers.js.map +1 -1
- package/package.json +5 -5
- package/src/components/buttons/BaseButton.tsx +4 -0
- package/src/components/error/SimpleError.tsx +2 -2
- package/src/components/form/BaseCheckbox.tsx +50 -0
- package/src/components/form/Checkbox.tsx +17 -40
- package/src/components/form/CountrySelect.tsx +178 -130
- package/src/components/form/Field.styles.ts +113 -24
- package/src/components/form/FormField.tsx +4 -1
- package/src/components/form/Select.tsx +65 -34
- package/src/components/form/Upload/BaseUpload.tsx +367 -0
- package/src/components/form/Upload/Upload.tsx +8 -360
- package/src/components/form/Upload/UploadedFile.tsx +1 -1
- package/src/components/form/Upload/WithUploadToIpfs.tsx +8 -11
- package/src/components/form/index.ts +6 -4
- package/src/components/form/types.ts +31 -3
- package/src/components/image/Image.styles.ts +7 -5
- package/src/components/image/Image.tsx +2 -2
- package/src/components/modal/components/Commit/DetailView/InnerCommitDetailView.tsx +1 -1
- package/src/components/modal/components/Redeem/ExchangeView/RedeemSuccess.tsx +1 -1
- package/src/components/modal/components/common/OfferFullDescription/DigitalProductData.tsx +1 -1
- package/src/components/modal/components/common/detail/DetailSlider.tsx +1 -1
- package/src/components/modal/components/common/detail/PhygitalProduct.tsx +1 -1
- package/src/components/modal/components/common/detail/SlickSlider.tsx +1 -1
- package/src/components/ui/CardCTA.tsx +77 -0
- package/src/components/ui/Grid.tsx +33 -21
- package/src/components/ui/IpfsImage.tsx +14 -7
- package/src/components/ui/Typography.tsx +39 -29
- package/src/components/ui/Video.tsx +32 -18
- package/src/components/ui/common.ts +2 -0
- package/src/components/wallet/ConnectButton.tsx +1 -1
- package/src/components/widgets/finance/convertion-rate/ConvertionRateContext.tsx +1 -1
- package/src/components/widgets/finance/convertion-rate/ConvertionRateProvider.tsx +1 -1
- package/src/components/widgets/finance/useOffersBacked.ts +1 -1
- package/src/hooks/core-sdk/useCoreSdk.tsx +4 -3
- package/src/hooks/form/useForm.ts +12 -0
- package/src/hooks/index.ts +5 -0
- package/src/hooks/ipfs/useIpfsStorage.ts +16 -0
- package/src/hooks/location/buildUseSearchParams.tsx +45 -0
- package/src/hooks/storage/useBosonLocalStorage.ts +40 -0
- package/src/{components/widgets/finance → hooks}/storage/useLocalStorage.ts +5 -17
- package/src/hooks/useIpfsMetadataStorage.tsx +6 -2
- package/src/index.tsx +6 -0
- package/src/lib/bytes/bytesToSize.ts +1 -1
- package/src/lib/const/chainInfo.ts +10 -1
- package/src/lib/url/url.ts +3 -0
- package/src/stories/buttons/Upload.stories.tsx +8 -0
- package/src/stories/form/BaseCheckbox.stories.tsx +113 -0
- package/src/stories/selects/CountrySelect.stories.tsx +49 -11
- package/src/stories/selects/Select.stories.tsx +117 -0
- package/src/types/helpers.ts +4 -0
- package/dist/cjs/components/widgets/finance/storage/useLocalStorage.d.ts.map +0 -1
- package/dist/cjs/components/widgets/finance/storage/useLocalStorage.js.map +0 -1
- package/dist/esm/components/widgets/finance/storage/useLocalStorage.d.ts.map +0 -1
- package/dist/esm/components/widgets/finance/storage/useLocalStorage.js.map +0 -1
- /package/dist/cjs/{components/widgets/finance → hooks}/storage/useLocalStorage.js +0 -0
- /package/dist/esm/{components/widgets/finance → hooks}/storage/useLocalStorage.js +0 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import React, { ReactElement } from "react";
|
|
2
|
+
import styled, { CSSProperties, css } from "styled-components";
|
|
3
|
+
import { Grid, GridProps } from "./Grid";
|
|
4
|
+
import { Typography, TypographyProps } from "./Typography";
|
|
5
|
+
|
|
6
|
+
export type CardCTAProps = GridProps & {
|
|
7
|
+
title: string;
|
|
8
|
+
text: string;
|
|
9
|
+
icon: ReactElement;
|
|
10
|
+
cta: ReactElement;
|
|
11
|
+
titleProps?: TypographyProps;
|
|
12
|
+
textProps?: TypographyProps;
|
|
13
|
+
theme: {
|
|
14
|
+
background: CSSProperties["background"];
|
|
15
|
+
color: CSSProperties["color"];
|
|
16
|
+
padding: CSSProperties["padding"];
|
|
17
|
+
border: CSSProperties["border"];
|
|
18
|
+
borderRadius: CSSProperties["borderRadius"];
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const StyledGrid = styled(Grid)<{ theme: CardCTAProps["theme"] }>`
|
|
23
|
+
${(props) => {
|
|
24
|
+
return css`
|
|
25
|
+
background: ${props.theme.background};
|
|
26
|
+
color: ${props.theme.color};
|
|
27
|
+
padding: ${props.theme.padding};
|
|
28
|
+
border: ${props.theme.border};
|
|
29
|
+
border-radius: ${props.theme.borderRadius};
|
|
30
|
+
`;
|
|
31
|
+
}}
|
|
32
|
+
`;
|
|
33
|
+
|
|
34
|
+
const IconContainer = styled(Grid)`
|
|
35
|
+
top: 0.5rem;
|
|
36
|
+
right: 0;
|
|
37
|
+
margin-bottom: 1rem;
|
|
38
|
+
svg {
|
|
39
|
+
> * {
|
|
40
|
+
stroke-width: 14px;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
`;
|
|
44
|
+
|
|
45
|
+
export const CardCTA: React.FC<CardCTAProps> = ({
|
|
46
|
+
title,
|
|
47
|
+
text,
|
|
48
|
+
icon,
|
|
49
|
+
cta,
|
|
50
|
+
theme,
|
|
51
|
+
titleProps,
|
|
52
|
+
textProps,
|
|
53
|
+
...rest
|
|
54
|
+
}) => {
|
|
55
|
+
return (
|
|
56
|
+
<StyledGrid
|
|
57
|
+
flexDirection="column"
|
|
58
|
+
alignItems="flex-start"
|
|
59
|
+
padding="1.5rem"
|
|
60
|
+
theme={theme}
|
|
61
|
+
{...rest}
|
|
62
|
+
>
|
|
63
|
+
<>
|
|
64
|
+
<div>
|
|
65
|
+
<IconContainer>{icon}</IconContainer>
|
|
66
|
+
<Typography fontWeight="600" fontSize="1.25rem" {...titleProps}>
|
|
67
|
+
{title}
|
|
68
|
+
</Typography>
|
|
69
|
+
</div>
|
|
70
|
+
<Typography tag="p" {...textProps}>
|
|
71
|
+
{text}
|
|
72
|
+
</Typography>
|
|
73
|
+
{cta}
|
|
74
|
+
</>
|
|
75
|
+
</StyledGrid>
|
|
76
|
+
);
|
|
77
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { ElementRef, HTMLAttributes, forwardRef } from "react";
|
|
2
2
|
import styled, { CSSProperties } from "styled-components";
|
|
3
3
|
import { getTransientCustomProps } from "./getTransientCustomProps";
|
|
4
|
+
import { isDefined } from "./common";
|
|
4
5
|
const pickedProps = {
|
|
5
6
|
alignItems: true,
|
|
6
7
|
flexBasis: true,
|
|
@@ -29,31 +30,42 @@ type IGrid = Pick<CSSProperties, keyof typeof pickedProps>;
|
|
|
29
30
|
type InnerGridProps = Record<`$${keyof IGrid}`, IGrid[keyof IGrid]>;
|
|
30
31
|
|
|
31
32
|
const Container = styled.div<InnerGridProps>`
|
|
32
|
-
|
|
33
|
-
height: ${({ $height }) => $height
|
|
33
|
+
${({ $width }) => (isDefined($width) ? `width:${$width};` : "width: 100%;")}
|
|
34
|
+
height: ${({ $height }) => (isDefined($height) ? $height : "initial")};
|
|
34
35
|
display: flex;
|
|
35
|
-
align-items: ${({ $alignItems }) =>
|
|
36
|
-
|
|
37
|
-
flex-
|
|
38
|
-
|
|
39
|
-
flex-
|
|
36
|
+
align-items: ${({ $alignItems }) =>
|
|
37
|
+
isDefined($alignItems) ? $alignItems : "center"};
|
|
38
|
+
flex-basis: ${({ $flexBasis }) =>
|
|
39
|
+
isDefined($flexBasis) ? $flexBasis : "auto"};
|
|
40
|
+
flex-direction: ${({ $flexDirection }) =>
|
|
41
|
+
isDefined($flexDirection) ? $flexDirection : "row"};
|
|
42
|
+
flex-grow: ${({ $flexGrow }) =>
|
|
43
|
+
isDefined($flexGrow) ? $flexGrow : "initial"};
|
|
44
|
+
flex-shrink: ${({ $flexShrink }) =>
|
|
45
|
+
isDefined($flexShrink) ? $flexShrink : "initial"};
|
|
40
46
|
justify-content: ${({ $justifyContent }) =>
|
|
41
|
-
$justifyContent
|
|
47
|
+
isDefined($justifyContent) ? $justifyContent : "space-between"};
|
|
42
48
|
|
|
43
|
-
${({ $flexWrap }) => ($flexWrap ? `flex-wrap:${$flexWrap};` : "")}
|
|
44
|
-
${({ $rowGap }) => ($rowGap ? `row-gap:${$rowGap};` : "")}
|
|
45
|
-
${({ $columnGap }) =>
|
|
46
|
-
|
|
47
|
-
${({ $
|
|
48
|
-
${({ $
|
|
49
|
-
${({ $
|
|
50
|
-
${({ $
|
|
51
|
-
${({ $
|
|
49
|
+
${({ $flexWrap }) => (isDefined($flexWrap) ? `flex-wrap:${$flexWrap};` : "")}
|
|
50
|
+
${({ $rowGap }) => (isDefined($rowGap) ? `row-gap:${$rowGap};` : "")}
|
|
51
|
+
${({ $columnGap }) =>
|
|
52
|
+
isDefined($columnGap) ? `column-gap:${$columnGap};` : ""}
|
|
53
|
+
${({ $gap }) => (isDefined($gap) ? `gap:${$gap};` : "")}
|
|
54
|
+
${({ $flex }) => (isDefined($flex) ? `> * { flex: ${$flex}; }` : "")}
|
|
55
|
+
${({ $padding }) => (isDefined($padding) ? `padding:${$padding};` : "")}
|
|
56
|
+
${({ $margin }) => (isDefined($margin) ? `margin:${$margin};` : "")}
|
|
57
|
+
${({ $marginTop }) =>
|
|
58
|
+
isDefined($marginTop) ? `margin-top:${$marginTop};` : ""}
|
|
59
|
+
${({ $marginRight }) =>
|
|
60
|
+
isDefined($marginRight) ? `margin-right:${$marginRight};` : ""}
|
|
52
61
|
${({ $marginBottom }) =>
|
|
53
|
-
$marginBottom ? `margin-bottom:${$marginBottom};` : ""}
|
|
54
|
-
${({ $marginLeft }) =>
|
|
55
|
-
|
|
56
|
-
${({ $
|
|
62
|
+
isDefined($marginBottom) ? `margin-bottom:${$marginBottom};` : ""}
|
|
63
|
+
${({ $marginLeft }) =>
|
|
64
|
+
isDefined($marginLeft) ? `margin-left:${$marginLeft};` : ""}
|
|
65
|
+
${({ $alignSelf }) =>
|
|
66
|
+
isDefined($alignSelf) ? `align-self:${$alignSelf};` : ""}
|
|
67
|
+
${({ $justifySelf }) =>
|
|
68
|
+
isDefined($justifySelf) ? `justify-self:${$justifySelf};` : ""}
|
|
57
69
|
`;
|
|
58
70
|
export type GridProps = {
|
|
59
71
|
children?: React.ReactNode;
|
|
@@ -73,7 +73,7 @@ const ImagePlaceholder = styled.div`
|
|
|
73
73
|
}
|
|
74
74
|
`;
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
export type IpfsImageProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
77
77
|
src: string;
|
|
78
78
|
children?: React.ReactNode;
|
|
79
79
|
dataTestId?: string;
|
|
@@ -85,8 +85,9 @@ interface IImage {
|
|
|
85
85
|
overrides?: {
|
|
86
86
|
ipfsGateway?: string;
|
|
87
87
|
};
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
className?: string;
|
|
89
|
+
};
|
|
90
|
+
export const IpfsImage: React.FC<IpfsImageProps> = ({
|
|
90
91
|
src,
|
|
91
92
|
children,
|
|
92
93
|
dataTestId = "image",
|
|
@@ -128,7 +129,11 @@ const IpfsImage: React.FC<IImage & React.HTMLAttributes<HTMLDivElement>> = ({
|
|
|
128
129
|
|
|
129
130
|
return (
|
|
130
131
|
<>
|
|
131
|
-
<ImageWrapper
|
|
132
|
+
<ImageWrapper
|
|
133
|
+
{...rest}
|
|
134
|
+
$hide={!isLoading}
|
|
135
|
+
className={"loading-container " + rest.className}
|
|
136
|
+
>
|
|
132
137
|
<ImagePlaceholder>
|
|
133
138
|
<Typography tag="div">
|
|
134
139
|
<Loading />
|
|
@@ -147,7 +152,11 @@ const IpfsImage: React.FC<IImage & React.HTMLAttributes<HTMLDivElement>> = ({
|
|
|
147
152
|
)}
|
|
148
153
|
</ImagePlaceholder>
|
|
149
154
|
</ImageWrapper>
|
|
150
|
-
<ImageWrapper
|
|
155
|
+
<ImageWrapper
|
|
156
|
+
{...rest}
|
|
157
|
+
$hide={!isSuccess}
|
|
158
|
+
className={"image-container " + rest.className}
|
|
159
|
+
>
|
|
151
160
|
{children || ""}
|
|
152
161
|
<ImageContainer
|
|
153
162
|
data-testid={dataTestId}
|
|
@@ -179,5 +188,3 @@ const IpfsImage: React.FC<IImage & React.HTMLAttributes<HTMLDivElement>> = ({
|
|
|
179
188
|
</>
|
|
180
189
|
);
|
|
181
190
|
};
|
|
182
|
-
|
|
183
|
-
export default IpfsImage;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { HTMLAttributes, forwardRef } from "react";
|
|
2
2
|
import styled, { CSSProperties } from "styled-components";
|
|
3
3
|
import { getTransientCustomProps } from "./getTransientCustomProps";
|
|
4
|
+
import { isDefined } from "./common";
|
|
4
5
|
|
|
5
6
|
const pickedProps = {
|
|
6
7
|
alignItems: true,
|
|
@@ -38,43 +39,52 @@ type InnerTypographyProps = Record<
|
|
|
38
39
|
`$${keyof WrapperProps}`,
|
|
39
40
|
WrapperProps[keyof WrapperProps]
|
|
40
41
|
>;
|
|
41
|
-
|
|
42
42
|
const Wrapper = styled.div<InnerTypographyProps>`
|
|
43
43
|
display: flex;
|
|
44
|
-
${({ $display }) => ($display ? `display:${$display};` : "")}
|
|
45
|
-
${({ $alignItems }) =>
|
|
46
|
-
|
|
44
|
+
${({ $display }) => (isDefined($display) ? `display:${$display};` : "")}
|
|
45
|
+
${({ $alignItems }) =>
|
|
46
|
+
isDefined($alignItems) && `align-items: ${$alignItems}`};
|
|
47
|
+
${({ $flexBasis }) => isDefined($flexBasis) && `flex-basis: ${$flexBasis}`};
|
|
47
48
|
${({ $flexDirection }) =>
|
|
48
|
-
$flexDirection && `flex-direction: ${$flexDirection}`};
|
|
49
|
-
${({ $flexGrow }) => $flexGrow && `flex-grow: ${$flexGrow}`};
|
|
50
|
-
${({ $flexShrink }) =>
|
|
49
|
+
isDefined($flexDirection) && `flex-direction: ${$flexDirection}`};
|
|
50
|
+
${({ $flexGrow }) => isDefined($flexGrow) && `flex-grow: ${$flexGrow}`};
|
|
51
|
+
${({ $flexShrink }) =>
|
|
52
|
+
isDefined($flexShrink) && `flex-shrink: ${$flexShrink}`};
|
|
51
53
|
${({ $justifyContent }) =>
|
|
52
|
-
$justifyContent && `justify-content: ${$justifyContent}`};
|
|
53
|
-
${({ $flexWrap }) => ($flexWrap ? `flex-wrap:${$flexWrap};` : "")}
|
|
54
|
-
${({ $rowGap }) => ($rowGap ? `row-gap:${$rowGap};` : "")}
|
|
55
|
-
${({ $columnGap }) =>
|
|
56
|
-
|
|
57
|
-
${({ $
|
|
58
|
-
${({ $
|
|
59
|
-
${({ $
|
|
60
|
-
${({ $
|
|
61
|
-
${({ $
|
|
54
|
+
isDefined($justifyContent) && `justify-content: ${$justifyContent}`};
|
|
55
|
+
${({ $flexWrap }) => (isDefined($flexWrap) ? `flex-wrap:${$flexWrap};` : "")}
|
|
56
|
+
${({ $rowGap }) => (isDefined($rowGap) ? `row-gap:${$rowGap};` : "")}
|
|
57
|
+
${({ $columnGap }) =>
|
|
58
|
+
isDefined($columnGap) ? `column-gap:${$columnGap};` : ""}
|
|
59
|
+
${({ $gap }) => (isDefined($gap) ? `gap:${$gap};` : "")}
|
|
60
|
+
${({ $flex }) => (isDefined($flex) ? `> * { flex: ${$flex}; }` : "")}
|
|
61
|
+
${({ $padding }) => (isDefined($padding) ? `padding:${$padding};` : "")}
|
|
62
|
+
${({ $margin }) => (isDefined($margin) ? `margin:${$margin};` : "")}
|
|
63
|
+
${({ $marginTop }) =>
|
|
64
|
+
isDefined($marginTop) ? `margin-top:${$marginTop};` : ""}
|
|
65
|
+
${({ $marginRight }) =>
|
|
66
|
+
isDefined($marginRight) ? `margin-right:${$marginRight};` : ""}
|
|
62
67
|
${({ $marginBottom }) =>
|
|
63
|
-
$marginBottom ? `margin-bottom:${$marginBottom};` : ""}
|
|
64
|
-
${({ $marginLeft }) =>
|
|
68
|
+
isDefined($marginBottom) ? `margin-bottom:${$marginBottom};` : ""}
|
|
69
|
+
${({ $marginLeft }) =>
|
|
70
|
+
isDefined($marginLeft) ? `margin-left:${$marginLeft};` : ""}
|
|
65
71
|
|
|
66
72
|
|
|
67
|
-
${({ $fontSize }) => ($fontSize ? `font-size:${$fontSize};` : "")}
|
|
68
|
-
${({ $fontWeight }) =>
|
|
69
|
-
|
|
70
|
-
${({ $
|
|
71
|
-
|
|
72
|
-
${({ $
|
|
73
|
+
${({ $fontSize }) => (isDefined($fontSize) ? `font-size:${$fontSize};` : "")}
|
|
74
|
+
${({ $fontWeight }) =>
|
|
75
|
+
isDefined($fontWeight) ? `font-weight:${$fontWeight};` : ""}
|
|
76
|
+
${({ $lineHeight }) =>
|
|
77
|
+
isDefined($lineHeight) ? `line-height:${$lineHeight};` : ""}
|
|
78
|
+
${({ $color }) => (isDefined($color) ? `color:${$color};` : "")}
|
|
79
|
+
${({ $background }) =>
|
|
80
|
+
isDefined($background) ? `background:${$background};` : ""}
|
|
81
|
+
${({ $cursor }) => (isDefined($cursor) ? `cursor:${$cursor};` : "")}
|
|
73
82
|
${({ $letterSpacing }) =>
|
|
74
|
-
$letterSpacing ? `letter-spacing:${$letterSpacing};` : ""}
|
|
75
|
-
${({ $textAlign }) =>
|
|
76
|
-
|
|
77
|
-
${({ $
|
|
83
|
+
isDefined($letterSpacing) ? `letter-spacing:${$letterSpacing};` : ""}
|
|
84
|
+
${({ $textAlign }) =>
|
|
85
|
+
isDefined($textAlign) ? `text-align:${$textAlign};` : ""}
|
|
86
|
+
${({ $opacity }) => (isDefined($opacity) ? `opacity:${$opacity};` : "")}
|
|
87
|
+
${({ $width }) => (isDefined($width) ? `width:${$width};` : "")}
|
|
78
88
|
`;
|
|
79
89
|
|
|
80
90
|
export type TypographyProps = WrapperProps &
|
|
@@ -9,7 +9,7 @@ import React, {
|
|
|
9
9
|
useRef,
|
|
10
10
|
useState
|
|
11
11
|
} from "react";
|
|
12
|
-
import styled, { css } from "styled-components";
|
|
12
|
+
import styled, { CSSProperties, css } from "styled-components";
|
|
13
13
|
import { useIpfsStorage } from "../../hooks/useIpfsStorage";
|
|
14
14
|
import { fetchIpfsBase64Media } from "../../lib/base64/base64";
|
|
15
15
|
import { theme } from "../../theme";
|
|
@@ -24,6 +24,7 @@ const StyledMuteButton = styled(MuteButton)`
|
|
|
24
24
|
position: absolute;
|
|
25
25
|
top: 1rem;
|
|
26
26
|
right: 1rem;
|
|
27
|
+
z-index: 1;
|
|
27
28
|
`;
|
|
28
29
|
const VideoWrapper = styled.div<{ $hasOnClick?: boolean }>`
|
|
29
30
|
overflow: hidden;
|
|
@@ -68,8 +69,15 @@ const VideoHtml = styled.video`
|
|
|
68
69
|
object-fit: contain;
|
|
69
70
|
`;
|
|
70
71
|
|
|
71
|
-
const VideoPlaceholder = styled.div
|
|
72
|
-
position
|
|
72
|
+
const VideoPlaceholder = styled.div<{ $position?: CSSProperties["position"] }>`
|
|
73
|
+
${({ $position }) =>
|
|
74
|
+
$position
|
|
75
|
+
? css`
|
|
76
|
+
position: ${$position};
|
|
77
|
+
`
|
|
78
|
+
: css`
|
|
79
|
+
position: absolute;
|
|
80
|
+
`}
|
|
73
81
|
top: 0;
|
|
74
82
|
height: 100%;
|
|
75
83
|
width: 100%;
|
|
@@ -89,7 +97,7 @@ const VideoPlaceholder = styled.div`
|
|
|
89
97
|
}
|
|
90
98
|
`;
|
|
91
99
|
|
|
92
|
-
|
|
100
|
+
export type VideoProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
93
101
|
src: string;
|
|
94
102
|
children?: ReactNode;
|
|
95
103
|
dataTestId?: string;
|
|
@@ -98,8 +106,8 @@ interface IVideo {
|
|
|
98
106
|
videoProps?: VideoHTMLAttributes<HTMLElement>;
|
|
99
107
|
withMuteButton?: boolean;
|
|
100
108
|
componentWhileLoading?: () => ReactElement;
|
|
101
|
-
}
|
|
102
|
-
const Video: React.FC<
|
|
109
|
+
};
|
|
110
|
+
export const Video: React.FC<VideoProps> = ({
|
|
103
111
|
src,
|
|
104
112
|
children,
|
|
105
113
|
dataTestId = "video",
|
|
@@ -125,6 +133,8 @@ const Video: React.FC<IVideo & React.HTMLAttributes<HTMLDivElement>> = ({
|
|
|
125
133
|
ipfsMetadataStorage
|
|
126
134
|
);
|
|
127
135
|
setVideoSrc(base64str as string);
|
|
136
|
+
setIsLoaded(true);
|
|
137
|
+
setIsError(false);
|
|
128
138
|
} catch (error) {
|
|
129
139
|
console.error("error in Video", error);
|
|
130
140
|
setIsLoaded(true);
|
|
@@ -136,9 +146,14 @@ const Video: React.FC<IVideo & React.HTMLAttributes<HTMLDivElement>> = ({
|
|
|
136
146
|
}
|
|
137
147
|
}
|
|
138
148
|
if (!isLoaded && videoSrc === null) {
|
|
139
|
-
if (
|
|
140
|
-
|
|
141
|
-
|
|
149
|
+
if (
|
|
150
|
+
src?.startsWith("ipfs://") ||
|
|
151
|
+
src?.startsWith("https://bosonprotocol.infura-ipfs.io/ipfs/")
|
|
152
|
+
) {
|
|
153
|
+
const split = src?.startsWith("ipfs://")
|
|
154
|
+
? src.split("//")
|
|
155
|
+
: src.split("https://bosonprotocol.infura-ipfs.io/ipfs/");
|
|
156
|
+
const CID = split[split.length - 1];
|
|
142
157
|
fetchData(`ipfs://${CID}`);
|
|
143
158
|
} else if (src?.startsWith("undefined") && src?.length > 9) {
|
|
144
159
|
const CID = src.replace("undefined", "");
|
|
@@ -149,12 +164,6 @@ const Video: React.FC<IVideo & React.HTMLAttributes<HTMLDivElement>> = ({
|
|
|
149
164
|
}
|
|
150
165
|
}, []); // eslint-disable-line
|
|
151
166
|
|
|
152
|
-
useEffect(() => {
|
|
153
|
-
if (videoSrc !== null) {
|
|
154
|
-
setTimeout(() => setIsLoaded(true), 100);
|
|
155
|
-
}
|
|
156
|
-
}, [videoSrc]);
|
|
157
|
-
|
|
158
167
|
const mp4Src = useMemo(() => {
|
|
159
168
|
const octetSrc =
|
|
160
169
|
videoSrc?.startsWith("data:application/octet-stream;base64,") || false;
|
|
@@ -183,13 +192,14 @@ const Video: React.FC<IVideo & React.HTMLAttributes<HTMLDivElement>> = ({
|
|
|
183
192
|
videoRef.current.play();
|
|
184
193
|
}
|
|
185
194
|
}, [muted]);
|
|
195
|
+
|
|
186
196
|
if (!isLoaded && !isError) {
|
|
187
197
|
if (ComponentWhileLoading) {
|
|
188
198
|
return <ComponentWhileLoading />;
|
|
189
199
|
}
|
|
190
200
|
return (
|
|
191
201
|
<VideoWrapper {...rest}>
|
|
192
|
-
<VideoPlaceholder>
|
|
202
|
+
<VideoPlaceholder $position="static">
|
|
193
203
|
<Typography tag="div">
|
|
194
204
|
<Loading />
|
|
195
205
|
</Typography>
|
|
@@ -200,8 +210,8 @@ const Video: React.FC<IVideo & React.HTMLAttributes<HTMLDivElement>> = ({
|
|
|
200
210
|
|
|
201
211
|
if (isLoaded && isError) {
|
|
202
212
|
return (
|
|
203
|
-
<VideoWrapper {...rest}>
|
|
204
|
-
<VideoPlaceholder data-video-placeholder>
|
|
213
|
+
<VideoWrapper {...rest} className="video-container">
|
|
214
|
+
<VideoPlaceholder data-video-placeholder $position="static">
|
|
205
215
|
{showPlaceholderText ? (
|
|
206
216
|
<VideoIcon size={50} color={colors.white} />
|
|
207
217
|
) : (
|
|
@@ -235,6 +245,10 @@ const Video: React.FC<IVideo & React.HTMLAttributes<HTMLDivElement>> = ({
|
|
|
235
245
|
data-testid={dataTestId}
|
|
236
246
|
{...videoProps}
|
|
237
247
|
src={mp4Src || ""}
|
|
248
|
+
onError={() => {
|
|
249
|
+
setIsLoaded(true);
|
|
250
|
+
setIsError(true);
|
|
251
|
+
}}
|
|
238
252
|
/>
|
|
239
253
|
</>
|
|
240
254
|
)}
|
|
@@ -8,7 +8,7 @@ import FallbackAvatar from "../avatar/fallback-avatar";
|
|
|
8
8
|
import { Button } from "../buttons/Button";
|
|
9
9
|
import ThemedButton, { bosonButtonThemes } from "../ui/ThemedButton";
|
|
10
10
|
import { useBreakpoints } from "../../hooks/useBreakpoints";
|
|
11
|
-
import { saveItemInStorage } from "
|
|
11
|
+
import { saveItemInStorage } from "../../hooks/storage/useBosonLocalStorage";
|
|
12
12
|
import { SignOut, Wallet } from "phosphor-react";
|
|
13
13
|
import { useIsMagicLoggedIn } from "../../hooks";
|
|
14
14
|
import { useAccount, useChainId } from "../../hooks/connection/connection";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint @typescript-eslint/no-empty-function: "off" */
|
|
2
2
|
/* eslint @typescript-eslint/no-explicit-any: "off" */
|
|
3
3
|
import { createContext } from "react";
|
|
4
|
-
import { getItemFromStorage } from "
|
|
4
|
+
import { getItemFromStorage } from "../../../../hooks/storage/useBosonLocalStorage";
|
|
5
5
|
|
|
6
6
|
export type Token = {
|
|
7
7
|
symbol: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
2
2
|
|
|
3
3
|
import { useTokens } from "../exchange-tokens/useTokens";
|
|
4
|
-
import { saveItemInStorage } from "
|
|
4
|
+
import { saveItemInStorage } from "../../../../hooks/storage/useBosonLocalStorage";
|
|
5
5
|
import ConvertionRateContext, {
|
|
6
6
|
ConvertionRateContextType,
|
|
7
7
|
initalState,
|
|
@@ -5,7 +5,7 @@ import groupBy from "lodash/groupBy";
|
|
|
5
5
|
import { useCallback, useMemo } from "react";
|
|
6
6
|
|
|
7
7
|
import { Props } from "./Finance";
|
|
8
|
-
import { saveItemInStorage } from "
|
|
8
|
+
import { saveItemInStorage } from "../../../hooks/storage/useLocalStorage";
|
|
9
9
|
import { SellerExchangeProps } from "./useSellerDeposit";
|
|
10
10
|
import { subgraph } from "@bosonprotocol/core-sdk";
|
|
11
11
|
import { Offer } from "../../../types/offer";
|
|
@@ -4,7 +4,8 @@ import {
|
|
|
4
4
|
getEnvConfigById,
|
|
5
5
|
ConfigId,
|
|
6
6
|
EnvironmentType,
|
|
7
|
-
MetaTxConfig
|
|
7
|
+
MetaTxConfig,
|
|
8
|
+
validateMetadata
|
|
8
9
|
} from "@bosonprotocol/core-sdk";
|
|
9
10
|
import { EthersAdapter, Provider } from "@bosonprotocol/ethers-sdk";
|
|
10
11
|
import { IpfsMetadataStorage } from "@bosonprotocol/ipfs-storage";
|
|
@@ -108,7 +109,7 @@ function initCoreSdk(config: CoreSdkConfig, overrides?: CoreSdkOverrides) {
|
|
|
108
109
|
protocolDiamond:
|
|
109
110
|
config.protocolDiamond || defaultConfig.contracts.protocolDiamond,
|
|
110
111
|
subgraphUrl: config.subgraphUrl || defaultConfig.subgraphUrl,
|
|
111
|
-
theGraphStorage: new IpfsMetadataStorage({
|
|
112
|
+
theGraphStorage: new IpfsMetadataStorage(validateMetadata, {
|
|
112
113
|
url: theGraphStorageUrl,
|
|
113
114
|
headers:
|
|
114
115
|
config.theGraphIpfsStorageHeaders ||
|
|
@@ -116,7 +117,7 @@ function initCoreSdk(config: CoreSdkConfig, overrides?: CoreSdkOverrides) {
|
|
|
116
117
|
? config.ipfsMetadataStorageHeaders
|
|
117
118
|
: undefined
|
|
118
119
|
}),
|
|
119
|
-
metadataStorage: new IpfsMetadataStorage({
|
|
120
|
+
metadataStorage: new IpfsMetadataStorage(validateMetadata, {
|
|
120
121
|
url: metadataStorageUrl,
|
|
121
122
|
headers: config.ipfsMetadataStorageHeaders
|
|
122
123
|
}),
|
package/src/hooks/index.ts
CHANGED
|
@@ -20,3 +20,8 @@ export * from "./contracts/erc1155/useErc1155Uris";
|
|
|
20
20
|
export * from "./uniswap/useIsWindowVisible";
|
|
21
21
|
export * from "./connection/connection";
|
|
22
22
|
export { useConfigContext } from "../components/config/ConfigContext";
|
|
23
|
+
export * from "./storage/useLocalStorage";
|
|
24
|
+
export * from "./ipfs/useIpfsStorage";
|
|
25
|
+
export * from "./location/buildUseSearchParams";
|
|
26
|
+
export * from "./form/useForm";
|
|
27
|
+
export * from "./useBreakpoints";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useConfigContext } from "../../components/config/ConfigContext";
|
|
2
|
+
import { useIpfsContext } from "../../components/ipfs/IpfsContext";
|
|
3
|
+
import { useIpfsMetadataStorage } from "../useIpfsMetadataStorage";
|
|
4
|
+
|
|
5
|
+
export function useIpfsStorage() {
|
|
6
|
+
const { config } = useConfigContext();
|
|
7
|
+
const { ipfsMetadataStorageHeaders, ipfsMetadataStorageUrl } =
|
|
8
|
+
useIpfsContext();
|
|
9
|
+
const storage = useIpfsMetadataStorage(
|
|
10
|
+
config.envName,
|
|
11
|
+
config.configId,
|
|
12
|
+
ipfsMetadataStorageUrl,
|
|
13
|
+
ipfsMetadataStorageHeaders
|
|
14
|
+
);
|
|
15
|
+
return storage;
|
|
16
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import qs from "query-string";
|
|
2
|
+
import { useCallback, useEffect, useState } from "react";
|
|
3
|
+
import { useLocation } from "react-router-dom";
|
|
4
|
+
|
|
5
|
+
export type BuildUseSearchParamsProps = {
|
|
6
|
+
useNavigate: () => (arg0: { pathname: string; search: string }) => unknown;
|
|
7
|
+
};
|
|
8
|
+
export function buildUseSearchParams({
|
|
9
|
+
useNavigate
|
|
10
|
+
}: BuildUseSearchParamsProps) {
|
|
11
|
+
return () => {
|
|
12
|
+
const navigate = useNavigate();
|
|
13
|
+
const location = useLocation();
|
|
14
|
+
const [params, setParams] = useState(qs.parse(location.search));
|
|
15
|
+
|
|
16
|
+
const handleChange = useCallback(
|
|
17
|
+
(name: string, value: string) => {
|
|
18
|
+
const oldParams = qs.parse(location.search);
|
|
19
|
+
|
|
20
|
+
const newParams = {
|
|
21
|
+
...oldParams,
|
|
22
|
+
[name]: value
|
|
23
|
+
};
|
|
24
|
+
setParams(newParams);
|
|
25
|
+
},
|
|
26
|
+
[location.search]
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
navigate({
|
|
31
|
+
pathname: location.pathname,
|
|
32
|
+
search: qs.stringify(params)
|
|
33
|
+
});
|
|
34
|
+
}, [params]); // eslint-disable-line
|
|
35
|
+
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
setParams(qs.parse(location.search));
|
|
38
|
+
}, [location.search]); // eslint-disable-line
|
|
39
|
+
|
|
40
|
+
return {
|
|
41
|
+
params,
|
|
42
|
+
handleChange
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getItemFromStorage as baseGetItemFromStorage,
|
|
3
|
+
saveItemInStorage as baseSaveItemInStorage,
|
|
4
|
+
removeItemInStorage as baseRemoveItemInStorage,
|
|
5
|
+
clearLocalStorage as baseClearLocalStorage,
|
|
6
|
+
useLocalStorage as useBaseLocalStorage
|
|
7
|
+
} from "./useLocalStorage";
|
|
8
|
+
|
|
9
|
+
export type GetItemFromStorageKey =
|
|
10
|
+
| "wagmi.store"
|
|
11
|
+
| "isChainUnsupported"
|
|
12
|
+
| "tracing-url"
|
|
13
|
+
| "isConnectWalletFromCommit"
|
|
14
|
+
| "convertionRates"
|
|
15
|
+
| "google-jwt"
|
|
16
|
+
| "showCookies";
|
|
17
|
+
|
|
18
|
+
export function getItemFromStorage<T>(
|
|
19
|
+
key: GetItemFromStorageKey,
|
|
20
|
+
initialValue: T
|
|
21
|
+
) {
|
|
22
|
+
return baseGetItemFromStorage(key, initialValue);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function saveItemInStorage<T>(key: GetItemFromStorageKey, value: T) {
|
|
26
|
+
return baseSaveItemInStorage(key, value);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function removeItemInStorage(key: GetItemFromStorageKey) {
|
|
30
|
+
return baseRemoveItemInStorage(key);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export const clearLocalStorage = baseClearLocalStorage;
|
|
34
|
+
|
|
35
|
+
export function useLocalStorage<T>(
|
|
36
|
+
key: GetItemFromStorageKey,
|
|
37
|
+
initialValue: T
|
|
38
|
+
) {
|
|
39
|
+
return useBaseLocalStorage(key, initialValue);
|
|
40
|
+
}
|