S3Panel en WebdavPanel consolideren (~120-180 regels overlap) #2072

Closed
opened 2026-09-13 08:05:34 +00:00 by brenno · 0 comments
Owner

Probleem

lib/widgets/dialogs/settings/s3_panel.dart en lib/widgets/dialogs/settings/webdav_panel.dart volgen nagenoeg dezelfde flow met veel identieke code.

Identieke / vrijwel identieke delen

Onderdeel S3Panel WebdavPanel
Widget constructor/props regels 20-42 regels 19-40
_update() helper regels 49-52 regels 45-48
_addressingField/_kindField (DropdownButtonFormField met reset van teststate) regels 56-95 regels 52-86
build(): Column, SettingsSectionTitle, introtekst, text fields, SwitchListTile, _testSection, footertekst regels 97-173 regels 88-172
_testSection() (testknop, spinner, succes-row, certificaat-button, error-row) regels 177-248 regels 244-315
_testConnection() (validatie, setState, probe, exception-afhandeling) regels 250-287 regels 317-354
_trustCertificate() (toon certificaat, pin, retest) regels 290-307 regels 362-381

Verschillen

Het specifieke formulier (S3Form vs WebdavForm), labels, hints, de enum voor foutafhandeling (S3Error vs WebdavError), en enkele veldspecifieke details.

Voorstel

Trek de gemeenschappelijke _testSection, _testConnection en _trustCertificate plus het gedeelde build()-skeleton naar een gedeelde base of helper voor online-opslagpanels.

Schatting

~120-180 regels die in een gedeelde base of helper zouden kunnen zitten. Per panel zouden 50-80 regels wegvallen.

Labels

duplicate, enhancement

## Probleem `lib/widgets/dialogs/settings/s3_panel.dart` en `lib/widgets/dialogs/settings/webdav_panel.dart` volgen nagenoeg dezelfde flow met veel identieke code. ## Identieke / vrijwel identieke delen | Onderdeel | S3Panel | WebdavPanel | |---|---|---| | Widget constructor/props | regels 20-42 | regels 19-40 | | `_update()` helper | regels 49-52 | regels 45-48 | | `_addressingField`/`_kindField` (DropdownButtonFormField met reset van teststate) | regels 56-95 | regels 52-86 | | `build()`: Column, SettingsSectionTitle, introtekst, text fields, SwitchListTile, `_testSection`, footertekst | regels 97-173 | regels 88-172 | | `_testSection()` (testknop, spinner, succes-row, certificaat-button, error-row) | regels 177-248 | regels 244-315 | | `_testConnection()` (validatie, setState, probe, exception-afhandeling) | regels 250-287 | regels 317-354 | | `_trustCertificate()` (toon certificaat, pin, retest) | regels 290-307 | regels 362-381 | ## Verschillen Het specifieke formulier (`S3Form` vs `WebdavForm`), labels, hints, de enum voor foutafhandeling (`S3Error` vs `WebdavError`), en enkele veldspecifieke details. ## Voorstel Trek de gemeenschappelijke `_testSection`, `_testConnection` en `_trustCertificate` plus het gedeelde `build()`-skeleton naar een gedeelde base of helper voor online-opslagpanels. ## Schatting ~120-180 regels die in een gedeelde base of helper zouden kunnen zitten. Per panel zouden 50-80 regels wegvallen. ## Labels duplicate, enhancement
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#2072
No description provided.