Skip to content

Commit c81f5f5

Browse files
authored
Merge pull request #42 from objectstack-ai/copilot/optimize-designer-drag-functionality
2 parents a35a2dc + 2b1a021 commit c81f5f5

16 files changed

Lines changed: 668 additions & 63 deletions

File tree

packages/components/src/renderers/complex/calendar-view.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import React from 'react';
77
ComponentRegistry.register('calendar-view',
88
({ schema, className, onAction, ...props }: { schema: CalendarViewSchema; className?: string; onAction?: (action: any) => void; [key: string]: any }) => {
99
// Transform schema data to CalendarEvent format
10-
const events: CalendarEvent[] = React.useMemo(() => {
10+
const events = React.useMemo(() => {
1111
if (!schema.data || !Array.isArray(schema.data)) return [];
1212

1313
return schema.data.map((record: any, index: number) => {
@@ -34,7 +34,7 @@ ComponentRegistry.register('calendar-view',
3434
}
3535

3636
return {
37-
id: record.id || record._id || index,
37+
id: String(record.id || record._id || index),
3838
title,
3939
start,
4040
end,
@@ -45,7 +45,7 @@ ComponentRegistry.register('calendar-view',
4545
});
4646
}, [schema.data, schema.titleField, schema.startDateField, schema.endDateField, schema.colorField, schema.allDayField, schema.colorMapping]);
4747

48-
const handleEventClick = React.useCallback((event: CalendarEvent) => {
48+
const handleEventClick = React.useCallback((event: any) => {
4949
if (onAction) {
5050
onAction({
5151
type: 'event_click',
@@ -95,8 +95,8 @@ ComponentRegistry.register('calendar-view',
9595

9696
return (
9797
<CalendarView
98-
events={events}
99-
view={schema.view || 'month'}
98+
events={events as any[]}
99+
view={(schema.view as any) || 'month'}
100100
currentDate={schema.currentDate ? new Date(schema.currentDate) : undefined}
101101
onEventClick={handleEventClick}
102102
onDateClick={schema.allowCreate || schema.onDateClick ? handleDateClick : undefined}

packages/components/src/renderers/complex/chatbot.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ ComponentRegistry.register('chatbot',
1919
({ schema, className, ...props }) => {
2020
// Initialize messages from schema or use empty array
2121
const [messages, setMessages] = useState<ChatMessage[]>(
22-
schema.messages?.map((msg: Partial<ChatMessage>, idx: number) => ({
22+
schema.messages?.map((msg: any, idx: number) => ({
2323
id: msg.id || `msg-${idx}`,
2424
role: msg.role || 'user',
2525
content: msg.content || '',
26-
timestamp: msg.timestamp,
26+
timestamp: typeof msg.timestamp === 'string' ? msg.timestamp : (msg.timestamp instanceof Date ? msg.timestamp.toISOString() : undefined),
2727
avatar: msg.avatar,
2828
avatarFallback: msg.avatarFallback,
2929
})) || []
@@ -63,7 +63,7 @@ ComponentRegistry.register('chatbot',
6363

6464
return (
6565
<Chatbot
66-
messages={messages}
66+
messages={messages as any}
6767
placeholder={schema.placeholder}
6868
onSendMessage={handleSendMessage}
6969
disabled={schema.disabled}

packages/components/src/renderers/complex/filter-builder.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { FilterBuilder } from '@/ui/filter-builder';
44

55
ComponentRegistry.register('filter-builder',
66
({ schema, className, onChange, ...props }: { schema: FilterBuilderSchema; className?: string; onChange?: (event: any) => void; [key: string]: any }) => {
7-
const handleChange = (value: FilterGroup) => {
7+
const handleChange = (value: any) => {
88
if (onChange) {
99
onChange({
1010
target: {
@@ -21,7 +21,7 @@ ComponentRegistry.register('filter-builder',
2121
<label className="text-sm font-medium mb-2 block">{schema.label}</label>
2222
)}
2323
<FilterBuilder
24-
fields={schema.fields || []}
24+
fields={(schema.fields || []) as any}
2525
value={schema.value || props.value}
2626
onChange={handleChange}
2727
className={className}

packages/components/src/renderers/feedback/loading.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ ComponentRegistry.register('loading',
1515
size === 'sm' && 'h-4 w-4',
1616
size === 'md' && 'h-8 w-8',
1717
size === 'lg' && 'h-12 w-12',
18-
size === 'xl' && 'h-16 w-16'
18+
size === ('xl' as any) && 'h-16 w-16'
1919
)}
2020
/>
2121
{schema.text && (

packages/components/src/renderers/form/calendar.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import { Calendar } from '@/ui';
55
ComponentRegistry.register('calendar',
66
({ schema, className, ...props }: { schema: CalendarSchema; className?: string; [key: string]: any }) => (
77
<Calendar
8-
mode={schema.mode || "single"}
9-
selected={schema.value || schema.defaultValue}
8+
mode={(schema.mode || "single") as any}
9+
selected={(schema.value || schema.defaultValue) as any}
1010
className={className}
1111
{...props}
1212
/>

packages/components/src/renderers/form/form.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ ComponentRegistry.register('form',
7171
type: 'form_submit',
7272
data,
7373
formData: data,
74-
});
74+
}) as any;
7575

7676
// Check if submission returned an error
7777
if (result?.error) {
@@ -97,7 +97,7 @@ ComponentRegistry.register('form',
9797
setSubmitError(errorMessage);
9898

9999
// Log errors for debugging (dev environment only)
100-
// @ts-expect-error - process may not be defined in all environments
100+
// process may not be defined in all environments
101101
if (typeof process !== 'undefined' && process.env?.NODE_ENV === 'development') {
102102
console.error('Form submission error:', error);
103103
}

packages/components/src/renderers/layout/container.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { cn } from '@/lib/utils';
55

66
ComponentRegistry.register('container',
77
({ schema, className, ...props }: { schema: ContainerSchema; className?: string; [key: string]: any }) => {
8-
const maxWidth = schema.maxWidth || 'xl';
8+
const maxWidth = (schema.maxWidth || 'xl') as any;
99
const padding = schema.padding || 4;
1010
const centered = schema.centered !== false; // Default to true
1111

packages/components/src/renderers/layout/tabs.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ ComponentRegistry.register('tabs',
1818
</TabsList>
1919
{schema.items?.map((item) => (
2020
<TabsContent key={item.value} value={item.value}>
21-
{renderChildren(item.body)}
21+
{renderChildren((item as any).body)}
2222
</TabsContent>
2323
))}
2424
</Tabs>

packages/components/src/renderers/overlay/tooltip.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ ComponentRegistry.register('tooltip',
2020
{renderChildren(schema.trigger)}
2121
</TooltipTrigger>
2222
<TooltipContent side={schema.side} align={schema.align} className={className}>
23-
{schema.content || renderChildren(schema.body)}
23+
{(schema.content || renderChildren(schema.body)) as any}
2424
</TooltipContent>
2525
</Tooltip>
2626
</TooltipProvider>

packages/components/src/ui/chatbot.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ const Chatbot = React.forwardRef<HTMLDivElement, ChatbotProps>(
9797
</div>
9898
) : (
9999
messages.map((message) => (
100-
<ChatMessage
100+
<ChatMessageItem
101101
key={message.id}
102102
message={message}
103103
showTimestamp={showTimestamp}
@@ -148,7 +148,7 @@ export interface ChatMessageProps {
148148
assistantAvatarFallback?: string
149149
}
150150

151-
const ChatMessage: React.FC<ChatMessageProps> = ({
151+
const ChatMessageItem: React.FC<ChatMessageProps> = ({
152152
message,
153153
showTimestamp,
154154
userAvatarUrl,
@@ -238,4 +238,3 @@ const TypingIndicator = React.forwardRef<HTMLDivElement, TypingIndicatorProps>(
238238
TypingIndicator.displayName = "TypingIndicator"
239239

240240
export { Chatbot, TypingIndicator }
241-
export type { ChatMessage }

0 commit comments

Comments
 (0)