Skip to content

DT search should wait till typing is finished or Enter/Return is pressed #152

@DarianGill

Description

@DarianGill

Though each table query has an additional to get the total count, we should still do this to avoid multiple premature queries like these:

5 premature searches while typing Vaccinium boreale:

API response time: 0.344764 secs
-> GET /plot-observations?limit=100&offset=0&detail=minimal&search=V&with_nested=TRUE&sort=default HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 20:59:59 GMT
<- content-type: application/json
<- content-length: 92657
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 10.75342 secs
-> GET /plot-observations?count=TRUE&detail=minimal&parquet=FALSE&clean_names=FALSE HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 21:00:00 GMT
<- content-type: application/json
<- content-length: 17
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 0.244863 secs
-> GET /plot-observations?limit=100&offset=0&detail=minimal&search=Vacc&with_nested=TRUE&sort=default HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 21:00:00 GMT
<- content-type: application/json
<- content-length: 22
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 0.1608961 secs
No records returned
-> GET /plot-observations?count=TRUE&detail=minimal&parquet=FALSE&clean_names=FALSE HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 21:00:00 GMT
<- content-type: application/json
<- content-length: 17
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 0.3893371 secs
-> GET /plot-observations?limit=100&offset=0&detail=minimal&search=Vaccini&with_nested=TRUE&sort=default HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 21:00:00 GMT
<- content-type: application/json
<- content-length: 22
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 0.1269312 secs
No records returned
-> GET /plot-observations?count=TRUE&detail=minimal&parquet=FALSE&clean_names=FALSE HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 21:00:00 GMT
<- content-type: application/json
<- content-length: 17
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 0.2160311 secs
-> GET /plot-observations?limit=100&offset=0&detail=minimal&search=Vaccinium&with_nested=TRUE&sort=default HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 21:00:01 GMT
<- content-type: application/json
<- content-length: 96920
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 0.5454409 secs
-> GET /plot-observations?count=TRUE&detail=minimal&parquet=FALSE&clean_names=FALSE HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 21:00:01 GMT
<- content-type: application/json
<- content-length: 17
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 0.3597221 secs
-> GET /plot-observations?limit=100&offset=0&detail=minimal&search=Vaccinium%20b&with_nested=TRUE&sort=default HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 21:00:22 GMT
<- content-type: application/json
<- content-length: 57554
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 20.29501 secs
-> GET /plot-observations?count=TRUE&detail=minimal&parquet=FALSE&clean_names=FALSE HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 21:00:22 GMT
<- content-type: application/json
<- content-length: 17
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 0.3917308 secs
-> GET /plot-observations?limit=100&offset=0&detail=minimal&search=Vaccinium%20bo&with_nested=TRUE&sort=default HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 21:00:22 GMT
<- content-type: application/json
<- content-length: 22
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 0.1700509 secs
No records returned
-> GET /plot-observations?count=TRUE&detail=minimal&parquet=FALSE&clean_names=FALSE HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 21:00:23 GMT
<- content-type: application/json
<- content-length: 17
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 0.301331 secs
-> GET /plot-observations?limit=100&offset=0&detail=minimal&search=Vaccinium%20boreale&with_nested=TRUE&sort=default HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 21:00:29 GMT
<- content-type: application/json
<- content-length: 88591
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 6.750519 secs
-> GET /plot-observations?count=TRUE&detail=minimal&parquet=FALSE&clean_names=FALSE HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 21:00:30 GMT
<- content-type: application/json
<- content-length: 17
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 0.8307409 secs

1 premature search while typing Maine:

-> GET /plot-observations?limit=100&offset=0&detail=minimal&search=M&with_nested=TRUE&sort=default HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 20:57:27 GMT
<- content-type: application/json
<- content-length: 96841
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 0.964951 secs
-> GET /plot-observations?count=TRUE&detail=minimal&parquet=FALSE&clean_names=FALSE HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 20:57:28 GMT
<- content-type: application/json
<- content-length: 17
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 0.5707221 secs
-> GET /plot-observations?limit=100&offset=0&detail=minimal&search=Maine&with_nested=TRUE&sort=default HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 20:57:28 GMT
<- content-type: application/json
<- content-length: 96187
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 0.3926241 secs
-> GET /plot-observations?count=TRUE&detail=minimal&parquet=FALSE&clean_names=FALSE HTTP/2
-> Host: api-dev.vegbank.org
-> User-Agent: httr2/1.2.2 r-curl/7.0.0 libcurl/8.14.1
-> Accept-Encoding: deflate, gzip
-> Accept: application/json
->
<- HTTP/2 200
<- date: Wed, 28 Jan 2026 20:57:29 GMT
<- content-type: application/json
<- content-length: 17
<- strict-transport-security: max-age=31536000; includeSubDomains
<-
API response time: 0.388968 secs

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions