fix(forms): prevent reparsing partial numeric hosts

This commit is contained in:
Andras Bacsai
2026-08-15 20:57:26 +02:00
parent 76030a30d4
commit 0824c91aca
2 changed files with 17 additions and 1 deletions
@@ -39,7 +39,11 @@
const path = this.path.trim();
const normalizedPath = path && !['/', '?', '#'].includes(path[0]) ? `/${path}` : path;
const next = `${this.scheme}://${this.host.trim()}${this.port ? `:${this.port}` : ''}${normalizedPath}`;
if (this.value !== next) this.value = next;
if (this.value !== next) {
this.syncing = true;
this.value = next;
this.$nextTick(() => this.syncing = false);
}
},
}" x-modelable="value" {{ $attributes->whereStartsWith('x-model') }}>
<div class="min-w-0">
+12
View File
@@ -22,6 +22,18 @@ it('renders configurable host copy for S3 endpoints', function () {
->toContain("path: ''");
});
it('does not reparse partial numeric hosts while typing', function () {
$view = file_get_contents(resource_path('views/components/forms/domain-input.blade.php'));
$writeMethod = str($view)->between('write() {', "\n },\n}")->value();
expect($writeMethod)
->toContain('this.syncing = true;')
->toContain('this.value = next;')
->toContain('this.$nextTick(() => this.syncing = false);')
->and(strpos($writeMethod, 'this.syncing = true;'))
->toBeLessThan(strpos($writeMethod, 'this.value = next;'));
});
it('keeps validation errors attached to the composed endpoint', function () {
$settingsUrl = route('settings.advanced').'#endpoint-section';
$errors = new ViewErrorBag;