Skip to content

Commit 2b5aea2

Browse files
committed
fix delete dialog for copilot keys
1 parent f8a1ce0 commit 2b5aea2

3 files changed

Lines changed: 30 additions & 78 deletions

File tree

apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components-new/settings-modal/components/copilot/copilot.tsx

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
import { useState } from 'react'
22
import { Check, Copy, Plus } from 'lucide-react'
33
import {
4+
Button,
45
Modal,
56
ModalContent,
67
ModalDescription,
78
ModalFooter,
89
ModalHeader,
910
ModalTitle,
1011
} from '@/components/emcn'
11-
import { Button, Input, Label } from '@/components/ui'
12+
import { Label } from '@/components/ui'
1213
import { createLogger } from '@/lib/logs/console/logger'
1314
import {
1415
type CopilotKey,
@@ -268,21 +269,6 @@ export function Copilot() {
268269
</ModalDescription>
269270
</ModalHeader>
270271

271-
{deleteKey && (
272-
<div className='py-2'>
273-
<p className='mb-2 font-[360] text-sm'>
274-
Enter <span className='font-semibold'>{deleteKey.displayKey}</span> to confirm.
275-
</p>
276-
<Input
277-
value={deleteConfirmationKey}
278-
onChange={(e) => setDeleteConfirmationKey(e.target.value)}
279-
placeholder='Type key to confirm'
280-
className='h-9 rounded-[8px]'
281-
autoFocus
282-
/>
283-
</div>
284-
)}
285-
286272
<ModalFooter className='flex'>
287273
<Button
288274
className='h-9 w-full rounded-[8px] bg-background text-foreground hover:bg-muted dark:bg-background dark:text-foreground dark:hover:bg-muted/80'
@@ -297,7 +283,6 @@ export function Copilot() {
297283
<Button
298284
onClick={handleDeleteKey}
299285
className='h-9 w-full rounded-[8px] bg-red-500 text-white transition-all duration-200 hover:bg-red-600 dark:bg-red-500 dark:hover:bg-red-600'
300-
disabled={!deleteKey || deleteConfirmationKey !== deleteKey.displayKey}
301286
>
302287
Delete
303288
</Button>

apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components-new/settings-modal/components/team-management/components/team-members/team-members.tsx

Lines changed: 16 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import { useState } from 'react'
2-
import { UserX, X } from 'lucide-react'
3-
import { Button, Tooltip } from '@/components/emcn'
4-
import { Button as UIButton } from '@/components/ui/button'
2+
import { Button } from '@/components/emcn'
53
import { UserAvatar } from '@/components/user-avatar/user-avatar'
64
import { createLogger } from '@/lib/logs/console/logger'
75
import type { Invitation, Member, Organization } from '@/lib/organization'
@@ -214,45 +212,25 @@ export function TeamMembers({
214212
item.type === 'member' &&
215213
item.role !== 'owner' &&
216214
item.email !== currentUserEmail && (
217-
<Tooltip.Root>
218-
<Tooltip.Trigger asChild>
219-
<UIButton
220-
variant='outline'
221-
size='sm'
222-
onClick={() => onRemoveMember(item.member)}
223-
className='h-8 w-8 rounded-[8px] p-0'
224-
>
225-
<UserX className='h-4 w-4' />
226-
</UIButton>
227-
</Tooltip.Trigger>
228-
<Tooltip.Content side='left'>Remove Member</Tooltip.Content>
229-
</Tooltip.Root>
215+
<Button
216+
variant='ghost'
217+
onClick={() => onRemoveMember(item.member)}
218+
className='h-8 text-muted-foreground hover:text-foreground'
219+
>
220+
Remove
221+
</Button>
230222
)}
231223

232224
{/* Admin can cancel invitations */}
233225
{isAdminOrOwner && item.type === 'invitation' && (
234-
<Tooltip.Root>
235-
<Tooltip.Trigger asChild>
236-
<UIButton
237-
variant='outline'
238-
size='sm'
239-
onClick={() => handleCancelInvitation(item.invitation.id)}
240-
disabled={cancellingInvitations.has(item.invitation.id)}
241-
className='h-8 w-8 rounded-[8px] p-0'
242-
>
243-
{cancellingInvitations.has(item.invitation.id) ? (
244-
<span className='h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent' />
245-
) : (
246-
<X className='h-4 w-4' />
247-
)}
248-
</UIButton>
249-
</Tooltip.Trigger>
250-
<Tooltip.Content side='left'>
251-
{cancellingInvitations.has(item.invitation.id)
252-
? 'Cancelling...'
253-
: 'Cancel Invitation'}
254-
</Tooltip.Content>
255-
</Tooltip.Root>
226+
<Button
227+
variant='ghost'
228+
onClick={() => handleCancelInvitation(item.invitation.id)}
229+
disabled={cancellingInvitations.has(item.invitation.id)}
230+
className='h-8 text-muted-foreground hover:text-foreground'
231+
>
232+
{cancellingInvitations.has(item.invitation.id) ? 'Cancelling...' : 'Cancel'}
233+
</Button>
256234
)}
257235
</div>
258236
</div>

apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components-new/settings-modal/components/team-management/components/team-seats/team-seats.tsx

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { useEffect, useState } from 'react'
2-
import { Tooltip } from '@/components/emcn'
3-
import { Button } from '@/components/ui/button'
2+
import { Button, Combobox, type ComboboxOption, Tooltip } from '@/components/emcn'
43
import {
54
Dialog,
65
DialogContent,
@@ -10,13 +9,6 @@ import {
109
DialogTitle,
1110
} from '@/components/ui/dialog'
1211
import { Label } from '@/components/ui/label'
13-
import {
14-
Select,
15-
SelectContent,
16-
SelectItem,
17-
SelectTrigger,
18-
SelectValue,
19-
} from '@/components/ui/select'
2012
import { DEFAULT_TEAM_TIER_COST_LIMIT } from '@/lib/billing/constants'
2113
import { env } from '@/lib/env'
2214

@@ -63,6 +55,11 @@ export function TeamSeats({
6355
await onConfirm(selectedSeats)
6456
}
6557

58+
const seatOptions: ComboboxOption[] = [1, 2, 3, 4, 5, 10, 15, 20, 25, 30, 40, 50].map((num) => ({
59+
value: num.toString(),
60+
label: `${num} ${num === 1 ? 'seat' : 'seats'} ($${num * costPerSeat}/month)`,
61+
}))
62+
6663
return (
6764
<Dialog open={open} onOpenChange={onOpenChange}>
6865
<DialogContent>
@@ -73,21 +70,12 @@ export function TeamSeats({
7370

7471
<div className='py-4'>
7572
<Label htmlFor='seats'>Number of seats</Label>
76-
<Select
73+
<Combobox
74+
options={seatOptions}
7775
value={selectedSeats.toString()}
78-
onValueChange={(value) => setSelectedSeats(Number.parseInt(value))}
79-
>
80-
<SelectTrigger id='seats' className='rounded-[8px]'>
81-
<SelectValue placeholder='Select number of seats' />
82-
</SelectTrigger>
83-
<SelectContent>
84-
{[1, 2, 3, 4, 5, 10, 15, 20, 25, 30, 40, 50].map((num) => (
85-
<SelectItem key={num} value={num.toString()}>
86-
{num} {num === 1 ? 'seat' : 'seats'} (${num * costPerSeat}/month)
87-
</SelectItem>
88-
))}
89-
</SelectContent>
90-
</Select>
76+
onChange={(value) => setSelectedSeats(Number.parseInt(value))}
77+
placeholder='Select number of seats'
78+
/>
9179

9280
<p className='mt-2 text-muted-foreground text-sm'>
9381
Your team will have {selectedSeats} {selectedSeats === 1 ? 'seat' : 'seats'} with a
@@ -123,6 +111,7 @@ export function TeamSeats({
123111
<Tooltip.Trigger asChild>
124112
<span>
125113
<Button
114+
variant='primary'
126115
onClick={handleConfirm}
127116
disabled={
128117
isLoading ||

0 commit comments

Comments
 (0)