diff --git a/package.json b/package.json
index 99a3e173f2..851cb44908 100644
--- a/package.json
+++ b/package.json
@@ -27,7 +27,7 @@
"@appwrite.io/pink-icons": "0.25.0",
"@appwrite.io/pink-icons-svelte": "^2.0.0-RC.1",
"@appwrite.io/pink-legacy": "^1.0.3",
- "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@5aca249",
+ "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@67c988c",
"@popperjs/core": "^2.11.8",
"@sentry/sveltekit": "^8.38.0",
"@stripe/stripe-js": "^3.5.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 8ceb043ad3..92351d55c4 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -27,8 +27,8 @@ importers:
specifier: ^1.0.3
version: 1.0.3
'@appwrite.io/pink-svelte':
- specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@5aca249
- version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@5aca249(svelte@5.25.3)
+ specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@67c988c
+ version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@67c988c(svelte@5.25.3)
'@popperjs/core':
specifier: ^2.11.8
version: 2.11.8
@@ -263,8 +263,8 @@ packages:
peerDependencies:
svelte: ^4.0.0
- '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@5aca24915ff47f6af3f1664a10ebdceab8d105f4':
- resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@5aca24915ff47f6af3f1664a10ebdceab8d105f4}
+ '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@67c988c04de3464a9c39630fd798e2316d157fea':
+ resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@67c988c04de3464a9c39630fd798e2316d157fea}
version: 2.0.0-RC.1
peerDependencies:
svelte: ^4.0.0
@@ -278,8 +278,8 @@ packages:
'@appwrite.io/pink-legacy@1.0.3':
resolution: {integrity: sha512-GGde5fmPhs+s6/3aFeMPc/kKADG/gTFkYQSy6oBN8pK0y0XNCLrZZgBv+EBbdhwdtqVEWXa0X85Mv9w7jcIlwQ==}
- '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@5aca249':
- resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@5aca249}
+ '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@67c988c':
+ resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@67c988c}
version: 2.0.0-RC.2
peerDependencies:
svelte: ^4.0.0
@@ -3621,7 +3621,7 @@ snapshots:
dependencies:
svelte: 5.25.3
- '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@5aca24915ff47f6af3f1664a10ebdceab8d105f4(svelte@5.25.3)':
+ '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@67c988c04de3464a9c39630fd798e2316d157fea(svelte@5.25.3)':
dependencies:
svelte: 5.25.3
@@ -3634,9 +3634,9 @@ snapshots:
'@appwrite.io/pink-icons': 1.0.0
the-new-css-reset: 1.11.3
- '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@5aca249(svelte@5.25.3)':
+ '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@67c988c(svelte@5.25.3)':
dependencies:
- '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@5aca24915ff47f6af3f1664a10ebdceab8d105f4(svelte@5.25.3)
+ '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@67c988c04de3464a9c39630fd798e2316d157fea(svelte@5.25.3)
'@floating-ui/dom': 1.6.13
'@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.6(svelte@5.25.3))(svelte@5.25.3)
'@melt-ui/svelte': 0.86.6(svelte@5.25.3)
diff --git a/src/lib/helpers/files.ts b/src/lib/helpers/files.ts
index bc408d4214..b72e289f66 100644
--- a/src/lib/helpers/files.ts
+++ b/src/lib/helpers/files.ts
@@ -92,6 +92,11 @@ export function removeFile(file: File, files: FileList) {
return dataTransfer.files;
}
+export enum InvalidFileType {
+ SIZE = 'invalid_size',
+ EXTENSION = 'invalid_extension'
+}
+
export const defaultIgnore = `
### Node ###
# Logs
diff --git a/src/routes/(console)/organization-[organization]/domains/domain-[domain]/importRecordModal.svelte b/src/routes/(console)/organization-[organization]/domains/domain-[domain]/importRecordModal.svelte
index b46812fa0b..5d0eeda5a1 100644
--- a/src/routes/(console)/organization-[organization]/domains/domain-[domain]/importRecordModal.svelte
+++ b/src/routes/(console)/organization-[organization]/domains/domain-[domain]/importRecordModal.svelte
@@ -5,7 +5,7 @@
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
import { Icon, Layout, Tooltip, Typography, Upload } from '@appwrite.io/pink-svelte';
import { IconInfo } from '@appwrite.io/pink-icons-svelte';
- import { removeFile } from '$lib/helpers/files';
+ import { InvalidFileType, removeFile } from '$lib/helpers/files';
import { page } from '$app/state';
import { sdk } from '$lib/stores/sdk';
import { invalidate } from '$app/navigation';
@@ -36,6 +36,17 @@
}
}
+ function handleInvalid(e: CustomEvent) {
+ const reason = e.detail.reason;
+ if (reason === InvalidFileType.EXTENSION) {
+ error = 'Only .txt files allowed';
+ } else if (reason === InvalidFileType.SIZE) {
+ error = 'File size exceeds 5MB';
+ } else {
+ error = 'Invalid file';
+ }
+ }
+
$: filesList = files?.length
? Array.from(files).map((f) => {
return {
@@ -61,7 +72,12 @@
Upload a .txt file with your DNS records
-
+
Only .txt files allowed
- Max file size 10MB
+ Max file size 5MB
diff --git a/src/routes/(console)/project-[region]-[project]/functions/create-function/manual/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/create-function/manual/+page.svelte
index ac9ee95e13..54167235a8 100644
--- a/src/routes/(console)/project-[region]-[project]/functions/create-function/manual/+page.svelte
+++ b/src/routes/(console)/project-[region]-[project]/functions/create-function/manual/+page.svelte
@@ -19,7 +19,7 @@
import { IconInfo } from '@appwrite.io/pink-icons-svelte';
import Configuration from './configuration.svelte';
import { getIconFromRuntime } from '$lib/stores/runtimes';
- import { removeFile } from '$lib/helpers/files';
+ import { InvalidFileType, removeFile } from '$lib/helpers/files';
export let data;
@@ -122,6 +122,26 @@
}
}
+ function handleInvalid(e: CustomEvent) {
+ const reason = e.detail.reason;
+ if (reason === InvalidFileType.EXTENSION) {
+ addNotification({
+ type: 'error',
+ message: 'Only .tar.gz files allowed'
+ });
+ } else if (reason === InvalidFileType.SIZE) {
+ addNotification({
+ type: 'error',
+ message: 'File size exceeds 10MB'
+ });
+ } else {
+ addNotification({
+ type: 'error',
+ message: 'Invalid file'
+ });
+ }
+ }
+
$: filesList = files?.length
? Array.from(files).map((f) => {
return {
@@ -157,7 +177,8 @@
title="Upload function"
extensions={['gz', 'tar']}
maxSize={10000000}
- required>
+ required
+ on:invalid={handleInvalid}>
{
return {
@@ -55,7 +66,12 @@
Upload a tar.gz file containing your function source code
-
+
;
@@ -55,6 +56,22 @@
image: input.popoverImage
};
}
+
+ function handleInvalid(e: CustomEvent) {
+ const reason = e.detail.reason;
+
+ if (reason === InvalidFileType.EXTENSION) {
+ addNotification({
+ type: 'error',
+ message: 'Only .json files allowed'
+ });
+ } else {
+ addNotification({
+ type: 'error',
+ message: 'Invalid file'
+ });
+ }
+ }
{#if input.type === 'text'}
@@ -104,6 +121,7 @@
{:else if input.type === 'file'}
diff --git a/src/routes/(console)/project-[region]-[project]/sites/create-site/manual/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/create-site/manual/+page.svelte
index e6072d0a39..201709a24a 100644
--- a/src/routes/(console)/project-[region]-[project]/sites/create-site/manual/+page.svelte
+++ b/src/routes/(console)/project-[region]-[project]/sites/create-site/manual/+page.svelte
@@ -19,7 +19,7 @@
import { organization } from '$lib/stores/organization';
import { consoleVariables } from '$routes/(console)/store';
import { IconInfo } from '@appwrite.io/pink-icons-svelte';
- import { removeFile } from '$lib/helpers/files';
+ import { InvalidFileType, removeFile } from '$lib/helpers/files';
export let data;
let showExitModal = false;
@@ -116,6 +116,26 @@
}
}
+ function handleInvalid(e: CustomEvent) {
+ const reason = e.detail.reason;
+ if (reason === InvalidFileType.EXTENSION) {
+ addNotification({
+ type: 'error',
+ message: 'Only .tar.gz files allowed'
+ });
+ } else if (reason === InvalidFileType.SIZE) {
+ addNotification({
+ type: 'error',
+ message: 'File size exceeds 10MB'
+ });
+ } else {
+ addNotification({
+ type: 'error',
+ message: 'Invalid file'
+ });
+ }
+ }
+
$: filesList = files?.length
? Array.from(files).map((f) => {
return {
@@ -144,7 +164,12 @@
Upload a tar.gz containing your site source code
-
+
Upload a tar.gz file containing your site source code
-
+
+ extensions={data.bucket.allowedFileExtensions}
+ on:invalid={handleInvalid}>
Drag and drop files here or click to upload