diff --git a/services/platform/app/components/ui/forms/file-upload.tsx b/services/platform/app/components/ui/forms/file-upload.tsx
index cfe916d4d..7f4585772 100644
--- a/services/platform/app/components/ui/forms/file-upload.tsx
+++ b/services/platform/app/components/ui/forms/file-upload.tsx
@@ -92,7 +92,13 @@ function DropZone({
(e: React.DragEvent) => {
e.preventDefault();
e.stopPropagation();
- setIsDragOver(false);
+ const { relatedTarget } = e;
+ if (
+ !(relatedTarget instanceof Node) ||
+ !e.currentTarget.contains(relatedTarget)
+ ) {
+ setIsDragOver(false);
+ }
},
[setIsDragOver],
);
diff --git a/services/platform/app/components/ui/navigation/navigation.tsx b/services/platform/app/components/ui/navigation/navigation.tsx
index 5b491ac8d..8fd9d7135 100644
--- a/services/platform/app/components/ui/navigation/navigation.tsx
+++ b/services/platform/app/components/ui/navigation/navigation.tsx
@@ -139,7 +139,7 @@ export function Navigation({ organizationId, role }: NavigationProps) {
-
+
{navigationItems.map((item) => (
diff --git a/services/platform/app/features/settings/integrations/components/integration-upload/steps/preview-step.tsx b/services/platform/app/features/settings/integrations/components/integration-upload/steps/preview-step.tsx
index d5f6e43c9..5687640ed 100644
--- a/services/platform/app/features/settings/integrations/components/integration-upload/steps/preview-step.tsx
+++ b/services/platform/app/features/settings/integrations/components/integration-upload/steps/preview-step.tsx
@@ -1,7 +1,7 @@
'use client';
import { Code, Database, Key, Globe, Pencil, Puzzle, Zap } from 'lucide-react';
-import { useCallback, useEffect, useMemo, useRef } from 'react';
+import { useCallback, useMemo, useRef } from 'react';
import { Image } from '@/app/components/ui/data-display/image';
import { Badge } from '@/app/components/ui/feedback/badge';
@@ -37,14 +37,6 @@ export function PreviewStep({ parsedPackage, onIconChange }: PreviewStepProps) {
[iconFile],
);
- useEffect(() => {
- return () => {
- if (iconPreviewUrl) {
- URL.revokeObjectURL(iconPreviewUrl);
- }
- };
- }, [iconPreviewUrl]);
-
const handleIconUpload = useCallback(
(e: React.ChangeEvent) => {
const file = e.target.files?.[0];
diff --git a/services/platform/app/features/settings/integrations/components/integration-upload/steps/upload-step.tsx b/services/platform/app/features/settings/integrations/components/integration-upload/steps/upload-step.tsx
index 410b48a48..a6e240ac6 100644
--- a/services/platform/app/features/settings/integrations/components/integration-upload/steps/upload-step.tsx
+++ b/services/platform/app/features/settings/integrations/components/integration-upload/steps/upload-step.tsx
@@ -59,10 +59,14 @@ export function UploadStep({ onPackageParsed }: UploadStepProps) {
inputId="integration-package-upload"
aria-label={t('integrations.upload.dropZoneLabel')}
className={cn(
- 'border-border hover:border-primary/50 flex flex-col items-center justify-center gap-3 rounded-lg border-2 border-dashed p-8 transition-colors',
+ 'border-border hover:border-primary/50 relative flex flex-col items-center justify-center gap-3 rounded-lg border-2 border-dashed p-8 transition-colors',
isParsing && 'pointer-events-none opacity-50',
)}
>
+
@@ -75,7 +79,6 @@ export function UploadStep({ onPackageParsed }: UploadStepProps) {
-
{error && (
diff --git a/services/platform/app/features/settings/organization/components/organization-settings-client.tsx b/services/platform/app/features/settings/organization/components/organization-settings-client.tsx
index 593c8b55b..cc6a7afb1 100644
--- a/services/platform/app/features/settings/organization/components/organization-settings-client.tsx
+++ b/services/platform/app/features/settings/organization/components/organization-settings-client.tsx
@@ -117,7 +117,7 @@ export function OrganizationSettingsClient({
id="org-name"
label={tSettings('organization.title')}
{...register('name')}
- className="max-w-sm flex-1"
+ wrapperClassName="max-w-sm flex-1"
/>