diff --git a/packages/plugins/FileService/src/SiteAdaptor/components/FileBrowser.tsx b/packages/plugins/FileService/src/SiteAdaptor/components/FileBrowser.tsx index 29ee43e385b6..df449509dfb7 100644 --- a/packages/plugins/FileService/src/SiteAdaptor/components/FileBrowser.tsx +++ b/packages/plugins/FileService/src/SiteAdaptor/components/FileBrowser.tsx @@ -121,12 +121,14 @@ enum ProviderTabs { All = 'All', IPFS = 'IPFS', Arweave = 'Arweave', + Load = 'Load Network', } const TabToProviderMap: Record = { [ProviderTabs.All]: null, [ProviderTabs.IPFS]: Provider.IPFS, [ProviderTabs.Arweave]: Provider.Arweave, + [ProviderTabs.Load]: Provider.Load, } const providers = getEnumAsArray(ProviderTabs) diff --git a/packages/plugins/FileService/src/SiteAdaptor/components/UploadFile.tsx b/packages/plugins/FileService/src/SiteAdaptor/components/UploadFile.tsx index 2298ac2b519e..b354c7ad0d38 100644 --- a/packages/plugins/FileService/src/SiteAdaptor/components/UploadFile.tsx +++ b/packages/plugins/FileService/src/SiteAdaptor/components/UploadFile.tsx @@ -1,9 +1,11 @@ +// todo:the issue is potentially the file size limit + import { Icons } from '@masknet/icons' import { UploadDropArea } from '@masknet/shared' import { makeStyles } from '@masknet/theme' import { Checkbox, FormControlLabel, Radio, Typography } from '@mui/material' import { useCallback, useMemo, useState, type ReactNode } from 'react' -import { MAX_FILE_SIZE } from '../../constants.js' +import { MAX_FILE_SIZE, MAX_FILE_SIZE_LOAD } from '../../constants.js' import { downloadFile } from '../../helpers.js' import { Provider } from '../../types.js' import { useFileManagement } from '../contexts/index.js' @@ -79,6 +81,8 @@ export function UploadFile() { const [provider, setProvider] = useState(Provider.Arweave) const { recentFiles, uploadingFiles, uploadFile, attachToPost } = useFileManagement() + const FILE_SIZE = provider === Provider.Load ? MAX_FILE_SIZE_LOAD : MAX_FILE_SIZE + const files = useMemo(() => { return [...uploadingFiles, ...recentFiles] }, [uploadingFiles, recentFiles]) @@ -92,6 +96,10 @@ export function UploadFile() { provider: Provider.IPFS, name: IPFS, }, + { + provider: Provider.Load, + name: Load Network, + }, ] const onSelectFile = useCallback( @@ -103,7 +111,7 @@ export function UploadFile() { return (
- +
{providers.map((config: ProviderConfig) => ( = { [Provider.Arweave]: arweave, [Provider.IPFS]: ipfs, + [Provider.Load]: load, } export async function makeAttachment(provider: Provider, options: AttachmentOptions) { diff --git a/packages/plugins/FileService/src/constants.ts b/packages/plugins/FileService/src/constants.ts index e6769bdcc1b6..d90b2d8b1497 100644 --- a/packages/plugins/FileService/src/constants.ts +++ b/packages/plugins/FileService/src/constants.ts @@ -3,6 +3,7 @@ export const META_KEY_2 = 'com.maskbook.fileservice:2' export const META_KEY_3 = 'com.maskbook.fileservice:3' export const MAX_FILE_SIZE = 10 * 1000 * 1000 +export const MAX_FILE_SIZE_LOAD = 10 * 1024 * 1024 export const LANDING_PAGE = 'https://files.r2d2.to/partner/arweave/landing-page.html' export const RECOVERY_PAGE = 'https://fileservice.r2d2.to/recover' @@ -19,4 +20,5 @@ export const enum RoutePaths { export const enum Provider { IPFS = 'ipfs', Arweave = 'arweave', + Load = 'load', } diff --git a/packages/plugins/FileService/src/helpers.ts b/packages/plugins/FileService/src/helpers.ts index f0f10902425e..40050b3e5166 100644 --- a/packages/plugins/FileService/src/helpers.ts +++ b/packages/plugins/FileService/src/helpers.ts @@ -45,6 +45,7 @@ const resolveGatewayAPI = createLookupTableResolver( { [Provider.Arweave]: 'https://arweave.net', [Provider.IPFS]: 'https://mask.infura-ipfs.io/ipfs', + [Provider.Load]: 'https://load0.network/resolve', }, () => 'Unknown provider', ) diff --git a/packages/plugins/FileService/src/schema-v3.json b/packages/plugins/FileService/src/schema-v3.json index b03c6d31e194..2ec75a5e9035 100644 --- a/packages/plugins/FileService/src/schema-v3.json +++ b/packages/plugins/FileService/src/schema-v3.json @@ -12,7 +12,7 @@ }, "provider": { "type": "string", - "enum": ["arweave", "ipfs"], + "enum": ["arweave", "ipfs", "load"], "title": "provider" }, "id": { diff --git a/packages/plugins/FileService/src/types.ts b/packages/plugins/FileService/src/types.ts index 407f8e1ca8a1..f40a37c78450 100644 --- a/packages/plugins/FileService/src/types.ts +++ b/packages/plugins/FileService/src/types.ts @@ -3,6 +3,7 @@ import type { FileFrameProps } from '@masknet/shared' export enum Provider { Arweave = 'arweave', IPFS = 'ipfs', + Load = 'load', } export interface LandingPageMetadata { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0a11f77c9f6d..79a3e5e65214 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5350,6 +5350,7 @@ packages: '@mui/base@5.0.0-beta.40': resolution: {integrity: sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==} engines: {node: '>=12.0.0'} + deprecated: This package has been replaced by @base-ui-components/react peerDependencies: '@types/react': npm:types-react@beta react: 0.0.0-experimental-58af67a8f8-20240628 @@ -7530,6 +7531,7 @@ packages: '@walletconnect/web3wallet@1.12.3': resolution: {integrity: sha512-HBzYDjf3ZVzyTCqycyMjJnn/1sQtRe0beGc3qtq9bLX/dmezkO6Oc1lg1WlvxT7KtTqKx41usw5tjiwfNZ2+ug==} + deprecated: Web3Wallet is now Reown WalletKit. Please follow the upgrade guide at https://docs.reown.com/walletkit/upgrade/from-web3wallet-web '@walletconnect/window-getters@1.0.0': resolution: {integrity: sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA==} @@ -11984,6 +11986,7 @@ packages: lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. lodash.indexof@4.0.5: resolution: {integrity: sha512-t9wLWMQsawdVmf6/IcAgVGqAJkNzYVcn4BHYZKTPW//l7N5Oq7Bq138BaVk19agcsPZePcidSgTTw4NqS1nUAw==} @@ -11993,6 +11996,7 @@ packages: lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. lodash.ismatch@4.4.0: resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} @@ -15772,6 +15776,7 @@ packages: yaeti@0.0.6: resolution: {integrity: sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==} engines: {node: '>=0.10.32'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -21253,20 +21258,20 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.26.9 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 '@types/babel__traverse@7.20.6': dependencies: @@ -23182,7 +23187,7 @@ snapshots: babel-plugin-jest-hoist@28.1.3: dependencies: '@babel/template': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.9 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 @@ -27407,7 +27412,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.26.0 - '@babel/parser': 7.26.2 + '@babel/parser': 7.26.9 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -27750,10 +27755,10 @@ snapshots: jest-snapshot@28.1.3: dependencies: '@babel/core': 7.26.0 - '@babel/generator': 7.26.2 + '@babel/generator': 7.26.9 '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/traverse': 7.26.5 + '@babel/types': 7.26.9 '@jest/expect-utils': 28.1.3 '@jest/transform': 28.1.3 '@jest/types': 28.1.3 @@ -27771,7 +27776,7 @@ snapshots: jest-util: 28.1.3 natural-compare: 1.4.0 pretty-format: 28.1.3 - semver: 7.6.3 + semver: 7.7.1 transitivePeerDependencies: - supports-color @@ -28343,7 +28348,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.6.3 + semver: 7.7.1 make-error@1.3.6: {}