@@ -2,25 +2,10 @@ import pgMeta from '@supabase/pg-meta'
22import type { OptimizedSearchColumns } from '@supabase/pg-meta/src/sql/studio/get-users-types'
33import { keepPreviousData , useQueryClient } from '@tanstack/react-query'
44import AwesomeDebouncePromise from 'awesome-debounce-promise'
5- import {
6- ExternalLinkIcon ,
7- InfoIcon ,
8- RefreshCw ,
9- Trash ,
10- Users ,
11- WandSparklesIcon ,
12- X ,
13- } from 'lucide-react'
14- import Link from 'next/link'
15- import { parseAsArrayOf , parseAsString , parseAsStringEnum , useQueryState } from 'nuqs'
16- import { UIEvent , useEffect , useMemo , useRef , useState } from 'react'
17- import DataGrid , { Column , DataGridHandle , Row } from 'react-data-grid'
18- import { toast } from 'sonner'
19-
205import { LOCAL_STORAGE_KEYS , useFlag , useParams } from 'common'
216import { useIsAPIDocsSidePanelEnabled } from 'components/interfaces/App/FeaturePreview/FeaturePreviewContext'
22- import { AlertError } from 'components/ui/AlertError'
237import { APIDocsButton } from 'components/ui/APIDocsButton'
8+ import { AlertError } from 'components/ui/AlertError'
249import { ButtonTooltip } from 'components/ui/ButtonTooltip'
2510import { FilterPopover } from 'components/ui/FilterPopover'
2611import { FormHeader } from 'components/ui/Forms/FormHeader'
@@ -40,26 +25,41 @@ import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization
4025import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject'
4126import { cleanPointerEventsNoneOnBody , isAtBottom } from 'lib/helpers'
4227import {
43- Alert_Shadcn_ ,
28+ ExternalLinkIcon ,
29+ InfoIcon ,
30+ RefreshCw ,
31+ Trash ,
32+ Users ,
33+ WandSparklesIcon ,
34+ X ,
35+ } from 'lucide-react'
36+ import Link from 'next/link'
37+ import { parseAsArrayOf , parseAsString , parseAsStringEnum , useQueryState } from 'nuqs'
38+ import { UIEvent , useEffect , useMemo , useRef , useState } from 'react'
39+ import DataGrid , { Column , DataGridHandle , Row } from 'react-data-grid'
40+ import { toast } from 'sonner'
41+ import {
4442 AlertDescription_Shadcn_ ,
4543 AlertTitle_Shadcn_ ,
44+ Alert_Shadcn_ ,
4645 Button ,
47- cn ,
4846 LoadingLine ,
4947 ResizablePanel ,
5048 ResizablePanelGroup ,
51- Select_Shadcn_ ,
5249 SelectContent_Shadcn_ ,
5350 SelectGroup_Shadcn_ ,
5451 SelectItem_Shadcn_ ,
5552 SelectTrigger_Shadcn_ ,
5653 SelectValue_Shadcn_ ,
54+ Select_Shadcn_ ,
5755 Tooltip ,
5856 TooltipContent ,
5957 TooltipTrigger ,
58+ cn ,
6059} from 'ui'
6160import ConfirmationModal from 'ui-patterns/Dialogs/ConfirmationModal'
6261import { GenericSkeletonLoader } from 'ui-patterns/ShimmeringLoader'
62+
6363import { AddUserDropdown } from './AddUserDropdown'
6464import { DeleteUserModal } from './DeleteUserModal'
6565import { SortDropdown } from './SortDropdown'
@@ -69,10 +69,8 @@ import {
6969 ColumnConfiguration ,
7070 Filter ,
7171 MAX_BULK_DELETE ,
72- PHONE_NUMBER_LEFT_PREFIX_REGEX ,
7372 PROVIDER_FILTER_OPTIONS ,
7473 USERS_TABLE_COLUMNS ,
75- UUIDV4_LEFT_PREFIX_REGEX ,
7674} from './Users.constants'
7775import { formatUserColumns , formatUsersData } from './Users.utils'
7876import { UsersFooter } from './UsersFooter'
@@ -137,7 +135,7 @@ export const UsersV2 = () => {
137135 'userType' ,
138136 parseAsStringEnum ( [ 'all' , 'verified' , 'unverified' , 'anonymous' ] ) . withDefault ( 'all' )
139137 )
140- const [ filterKeywords , setFilterKeywords ] = useQueryState ( 'keywords' , { defaultValue : '' } )
138+ const [ filterKeywords ] = useQueryState ( 'keywords' , { defaultValue : '' } )
141139 const [ sortByValue , setSortByValue ] = useQueryState ( 'sortBy' , { defaultValue : 'created_at:desc' } )
142140 const [ sortColumn , sortOrder ] = sortByValue . split ( ':' )
143141 const [ selectedColumns , setSelectedColumns ] = useQueryState (
@@ -185,7 +183,6 @@ export const UsersV2 = () => {
185183 )
186184
187185 const [ columns , setColumns ] = useState < Column < any > [ ] > ( [ ] )
188- const [ search , setSearch ] = useState ( filterKeywords )
189186 const [ selectedUsers , setSelectedUsers ] = useState < Set < any > > ( new Set ( [ ] ) )
190187 const [ selectedUserToDelete , setSelectedUserToDelete ] = useState < User > ( )
191188 const [ showDeleteModal , setShowDeleteModal ] = useState ( false )
@@ -330,16 +327,6 @@ export const UsersV2 = () => {
330327 // [Joshen] Only relevant for when selecting one user only
331328 const selectedUserFromCheckbox = users . find ( ( u ) => u . id === [ ...selectedUsers ] [ 0 ] )
332329
333- const searchInvalid =
334- ! search ||
335- specificFilterColumn === 'freeform' ||
336- specificFilterColumn === 'email' ||
337- specificFilterColumn === 'name'
338- ? false
339- : specificFilterColumn === 'id'
340- ? ! search . match ( UUIDV4_LEFT_PREFIX_REGEX )
341- : ! search . match ( PHONE_NUMBER_LEFT_PREFIX_REGEX )
342-
343330 const telemetryProps = {
344331 sort_column : sortColumn ,
345332 sort_order : sortOrder ,
@@ -566,24 +553,10 @@ export const UsersV2 = () => {
566553 < >
567554 < div className = "flex flex-wrap items-center gap-2" >
568555 < UsersSearch
569- search = { search }
570- searchInvalid = { searchInvalid }
571- specificFilterColumn = { specificFilterColumn }
572- setSearch = { setSearch }
573- setFilterKeywords = { ( s ) => {
574- setFilterKeywords ( s )
575- setSelectedId ( null )
576- sendEvent ( {
577- action : 'auth_users_search_submitted' ,
578- properties : {
579- trigger : 'search_input' ,
580- ...telemetryProps ,
581- keywords : s ,
582- } ,
583- groups : telemetryGroups ,
584- } )
585- } }
586- setSpecificFilterColumn = { ( value ) => {
556+ improvedSearchEnabled = { improvedSearchEnabled }
557+ telemetryProps = { telemetryProps }
558+ telemetryGroups = { telemetryGroups }
559+ onSelectFilterColumn = { ( value ) => {
587560 if ( value === 'freeform' ) {
588561 if ( isCountWithinThresholdForSortBy ) {
589562 updateStorageFilter ( value )
@@ -594,7 +567,6 @@ export const UsersV2 = () => {
594567 updateStorageFilter ( value )
595568 }
596569 } }
597- improvedSearchEnabled = { improvedSearchEnabled }
598570 />
599571
600572 { showUserTypeFilter &&
0 commit comments