• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kobotoolbox / kpi / 27608641316
82%
master: 76%

Build:
Build:
LAST BUILD BRANCH: dependabot/github_actions/actions-deps-2b1d353b35
DEFAULT BRANCH: master
Ran 16 Jun 2026 09:45AM UTC
Jobs 10
Files 883
Run time 2min
Badge
Embed β–Ύ
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

16 Jun 2026 09:40AM UTC coverage: 81.585%. Remained the same
27608641316

push

github

web-flow
fix(dataTable): filter input losing focus DEV-2245 (#7148)

### πŸ“£ Summary

Fixed filter inputs in the Data Table losing focus while typing, which
caused keystrokes to be lost after query completion.

### πŸ’­ Notes

Changes here:
- **New files** (pulled stable components out to fix React remounting):
  - `TableDropdownFilter.tsx` β€” Dropdown filter for select questions
    - Migrated the raw `<select>` to Mantine Select
  - `TableTextFilter.tsx` β€” Text input filter with debouncing
- **table.tsx**:
- Replaced inline filter component definitions in `_prepColumns` with
wrapper functions that use the stable imported components

The bug: filter components were getting redefined inside `_prepColumns`
every time it ran. When queries came back, React saw brand new component
references and unmounted/remounted themβ€”bye bye focus, bye bye anything
you were typing.

Now the filter components live in their own files. React sees the same
reference each time and keeps focus, debounce timers, and cursor
position intact.

### πŸ‘€ Preview steps

1. ℹ️ Have an account with a project that has submissions
2. Go to Project β†’ Data β†’ Table
3. Click on any column filter input (search box or dropdown at the top
of a column)
4. Start typing quickly in the filter
5. πŸ”΄ [on main] The input loses focus mid-typing and your keystrokes
vanish
6. 🟒 [on PR] The input keeps focus while you type and captures
everything
7. Keep typing to check that the debounced query fires after 300ms
8. 🟒 Filter results update without stealing focus

---------

Co-authored-by: James Kiger <68701146+jamesrkiger@users.noreply.github.com>

9034 of 12268 branches covered (73.64%)

29662 of 36357 relevant lines covered (81.59%)

5.56 hits per line

Coverage Regressions

Lines Coverage βˆ† File
312
0.0
-91.23% kobo/apps/openrosa/apps/viewer/pandas_mongo_bridge.py
209
19.15
-51.99% kobo/apps/openrosa/libs/utils/export_tools.py
206
0.0
-86.19% kobo/apps/openrosa/libs/utils/briefcase_client.py
158
58.79
-28.94% kobo/apps/openrosa/libs/utils/logger_tools.py
87
0.0
-87.88% kobo/apps/openrosa/libs/utils/backup_tools.py
81
0.0
-93.1% kobo/apps/stripe/serializers.py
75
0.0
-41.9% kobo/apps/stripe/views.py
66
33.33
-59.46% kobo/apps/openrosa/apps/viewer/views.py
64
27.2
-51.2% kobo/apps/stripe/utils/subscription_limits.py
63
0.0
-51.64% kobo/apps/stripe/models.py
58
0.0
-90.63% kobo/apps/openrosa/libs/data/query.py
50
0.0
-47.17% kobo/apps/openrosa/apps/logger/tasks.py
49
51.59
-38.89% kobo/apps/openrosa/apps/logger/signals.py
49
28.57
-43.75% kobo/apps/openrosa/apps/logger/views.py
42
46.47
-15.61% kobo/apps/openrosa/apps/viewer/models/data_dictionary.py
41
40.69
-6.75% kpi/deployment_backends/openrosa_backend.py
40
0.0
-40.82% kobo/apps/openrosa/apps/viewer/xls_writer.py
40
23.29
-54.79% kobo/apps/openrosa/libs/utils/image_tools.py
39
23.08
-30.0% kobo/apps/openrosa/apps/viewer/tasks.py
36
24.49
-73.47% kobo/apps/openrosa/apps/logger/import_tools.py
36
20.21
-38.3% kobo/apps/stripe/utils/billing_dates.py
35
24.11
-31.25% kobo/apps/openrosa/apps/logger/utils/instance.py
33
49.51
-32.04% kobo/apps/openrosa/apps/viewer/models/export.py
32
58.33
-13.33% kobo/apps/openrosa/apps/viewer/models/parsed_instance.py
30
57.98
-25.21% kobo/apps/openrosa/apps/logger/models/attachment.py
28
30.14
-19.18% kobo/apps/openrosa/libs/utils/viewer_tools.py
28
27.78
-9.15% kpi/views/v2/data.py
27
61.5
-12.68% kpi/permissions.py
24
33.33
-66.67% kobo/apps/openrosa/libs/utils/decorators.py
20
29.67
-21.98% kobo/apps/openrosa/libs/utils/user_auth.py
19
0.0
-65.52% kobo/apps/stripe/admin.py
17
16.22
-45.95% kobo/apps/openrosa/apps/logger/utils/database_query.py
16
31.82
-36.36% kobo/apps/stripe/utils/limit_enforcement.py
15
31.71
-36.59% kobo/apps/openrosa/apps/logger/xform_fs.py
15
81.64
-5.86% kobo/apps/openrosa/apps/logger/xform_instance_parser.py
14
47.62
-8.33% kobo/apps/openrosa/apps/main/models/meta_data.py
14
44.0
-56.0% kobo/apps/openrosa/libs/utils/model_tools.py
12
44.9
-24.49% kobo/apps/openrosa/apps/logger/utils/counters.py
12
35.0
-60.0% kobo/apps/stripe/utils/import_management.py
11
54.84
-35.48% kobo/apps/openrosa/libs/authentication.py
11
0.0
-44.0% kobo/apps/stripe/signals.py
11
45.16
-17.74% kpi/views/v2/attachment.py
10
77.32
-5.15% kobo/apps/openrosa/apps/logger/models/instance.py
9
77.49
-4.71% kobo/apps/openrosa/apps/logger/models/xform.py
9
0.0
-29.03% kobo/apps/stripe/utils/manual_subscription.py
9
41.18
-52.94% kpi/utils/viewset_mixins.py
8
0.0
-100.0% kobo/apps/stripe/urls.py
7
0.0
-100.0% kobo/apps/stripe/apps.py
7
65.19
-1.73% kpi/deployment_backends/base_backend.py
6
0.0
-100.0% kobo/apps/stripe/exceptions.py
6
0.0
-37.5% kobo/apps/stripe/utils/view_utils.py
6
74.15
-2.93% kpi/utils/mongo_helper.py
5
84.21
-8.77% kobo/apps/openrosa/apps/logger/exceptions.py
5
72.22
-27.78% kobo/apps/openrosa/apps/logger/models/daily_xform_submission_counter.py
5
75.0
-25.0% kobo/apps/openrosa/apps/logger/models/monthly_xform_submission_counter.py
5
0.0
-38.46% kobo/apps/openrosa/apps/main/context_processors.py
4
45.45
-36.36% kobo/apps/openrosa/koboform/__init__.py
3
95.76
-2.54% kobo/apps/openrosa/apps/api/viewsets/xform_submission_api.py
3
80.0
-20.0% kobo/apps/openrosa/apps/viewer/signals.py
3
31.43
-2.86% kobo/apps/organizations/admin/organization.py
3
61.21
-1.82% kobo/apps/organizations/models.py
3
60.53
-7.89% kobo/apps/organizations/utils.py
2
52.9
-0.48% kobo/apps/audit_log/models.py
2
83.33
-6.67% kobo/urls.py
2
91.21
-0.35% kpi/models/asset.py
2
39.76
-2.41% kpi/utils/storage.py
1
78.57
-1.19% kobo/apps/audit_log/base_views.py
1
69.85
-0.74% kobo/apps/audit_log/signals.py
1
0.0
-100.0% kobo/apps/openrosa/apps/logger/constants.py
1
91.3
-4.35% kobo/apps/openrosa/libs/permissions.py
1
94.12
-1.18% kobo/apps/openrosa/libs/renderers/renderers.py
1
68.75
-6.25% kobo/apps/openrosa/libs/utils/string.py
1
92.31
-7.69% kobo/apps/user_reports/utils/migrations.py
1
67.95
-1.28% kpi/authentication.py
1
72.73
-4.55% kpi/urls/__init__.py
Jobs
ID Job ID Ran Files Coverage
1 27608641316.1 16 Jun 2026 09:45AM UTC 879
44.89
2 27608641316.2 16 Jun 2026 09:45AM UTC 879
53.54
3 27608641316.3 16 Jun 2026 09:46AM UTC 879
50.17
4 27608641316.4 16 Jun 2026 09:47AM UTC 881
54.84
5 27608641316.5 16 Jun 2026 09:48AM UTC 879
59.45
6 27608641316.6 16 Jun 2026 09:48AM UTC 881
66.51
7 27608641316.7 16 Jun 2026 09:48AM UTC 881
46.29
8 27608641316.8 16 Jun 2026 09:48AM UTC 881
51.54
9 27608641316.9 16 Jun 2026 09:49AM UTC 881
60.63
10 27608641316.10 16 Jun 2026 09:49AM UTC 883
68.86
Source Files on build 27608641316
  • Tree
  • List 883
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage βˆ† File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 0e0b1233 on github
  • Prev Build on main (#27607895937)
  • Next Build on main (#27608652545)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc