refactor: replace random ID generation with Cuid2 for unique HTML IDs in form components
This commit is contained in:
parent
a5c6f53b58
commit
d2a334df78
5 changed files with 6 additions and 6 deletions
|
|
@ -6,6 +6,7 @@
|
||||||
use Illuminate\Contracts\View\View;
|
use Illuminate\Contracts\View\View;
|
||||||
use Illuminate\Support\Facades\Gate;
|
use Illuminate\Support\Facades\Gate;
|
||||||
use Illuminate\View\Component;
|
use Illuminate\View\Component;
|
||||||
|
use Visus\Cuid2\Cuid2;
|
||||||
|
|
||||||
class Checkbox extends Component
|
class Checkbox extends Component
|
||||||
{
|
{
|
||||||
|
|
@ -57,7 +58,7 @@ public function render(): View|Closure|string
|
||||||
// Generate unique HTML ID by adding random suffix
|
// Generate unique HTML ID by adding random suffix
|
||||||
// This prevents duplicate IDs when multiple forms are on the same page
|
// This prevents duplicate IDs when multiple forms are on the same page
|
||||||
if ($this->id) {
|
if ($this->id) {
|
||||||
$uniqueSuffix = substr(md5(uniqid((string) mt_rand(), true)), 0, 8);
|
$uniqueSuffix = new Cuid2;
|
||||||
$this->htmlId = $this->id.'-'.$uniqueSuffix;
|
$this->htmlId = $this->id.'-'.$uniqueSuffix;
|
||||||
} else {
|
} else {
|
||||||
$this->htmlId = $this->id;
|
$this->htmlId = $this->id;
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ public function render(): View|Closure|string
|
||||||
// This prevents duplicate IDs when multiple forms are on the same page
|
// This prevents duplicate IDs when multiple forms are on the same page
|
||||||
if ($this->modelBinding && $this->modelBinding !== 'null') {
|
if ($this->modelBinding && $this->modelBinding !== 'null') {
|
||||||
// Use original ID with random suffix for uniqueness
|
// Use original ID with random suffix for uniqueness
|
||||||
$uniqueSuffix = substr(md5(uniqid((string) mt_rand(), true)), 0, 8);
|
$uniqueSuffix = new Cuid2;
|
||||||
$this->htmlId = $this->modelBinding.'-'.$uniqueSuffix;
|
$this->htmlId = $this->modelBinding.'-'.$uniqueSuffix;
|
||||||
} else {
|
} else {
|
||||||
$this->htmlId = (string) $this->id;
|
$this->htmlId = (string) $this->id;
|
||||||
|
|
|
||||||
|
|
@ -55,12 +55,11 @@ public function render(): View|Closure|string
|
||||||
// Don't create wire:model binding for auto-generated IDs
|
// Don't create wire:model binding for auto-generated IDs
|
||||||
$this->modelBinding = 'null';
|
$this->modelBinding = 'null';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generate unique HTML ID by adding random suffix
|
// Generate unique HTML ID by adding random suffix
|
||||||
// This prevents duplicate IDs when multiple forms are on the same page
|
// This prevents duplicate IDs when multiple forms are on the same page
|
||||||
if ($this->modelBinding && $this->modelBinding !== 'null') {
|
if ($this->modelBinding && $this->modelBinding !== 'null') {
|
||||||
// Use original ID with random suffix for uniqueness
|
// Use original ID with random suffix for uniqueness
|
||||||
$uniqueSuffix = substr(md5(uniqid((string) mt_rand(), true)), 0, 8);
|
$uniqueSuffix = new Cuid2;
|
||||||
$this->htmlId = $this->modelBinding.'-'.$uniqueSuffix;
|
$this->htmlId = $this->modelBinding.'-'.$uniqueSuffix;
|
||||||
} else {
|
} else {
|
||||||
$this->htmlId = (string) $this->id;
|
$this->htmlId = (string) $this->id;
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ public function render(): View|Closure|string
|
||||||
// This prevents duplicate IDs when multiple forms are on the same page
|
// This prevents duplicate IDs when multiple forms are on the same page
|
||||||
if ($this->modelBinding && $this->modelBinding !== 'null') {
|
if ($this->modelBinding && $this->modelBinding !== 'null') {
|
||||||
// Use original ID with random suffix for uniqueness
|
// Use original ID with random suffix for uniqueness
|
||||||
$uniqueSuffix = substr(md5(uniqid((string) mt_rand(), true)), 0, 8);
|
$uniqueSuffix = new Cuid2;
|
||||||
$this->htmlId = $this->modelBinding.'-'.$uniqueSuffix;
|
$this->htmlId = $this->modelBinding.'-'.$uniqueSuffix;
|
||||||
} else {
|
} else {
|
||||||
$this->htmlId = (string) $this->id;
|
$this->htmlId = (string) $this->id;
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@ public function render(): View|Closure|string
|
||||||
// This prevents duplicate IDs when multiple forms are on the same page
|
// This prevents duplicate IDs when multiple forms are on the same page
|
||||||
if ($this->modelBinding && $this->modelBinding !== 'null') {
|
if ($this->modelBinding && $this->modelBinding !== 'null') {
|
||||||
// Use original ID with random suffix for uniqueness
|
// Use original ID with random suffix for uniqueness
|
||||||
$uniqueSuffix = substr(md5(uniqid((string) mt_rand(), true)), 0, 8);
|
$uniqueSuffix = new Cuid2;
|
||||||
$this->htmlId = $this->modelBinding.'-'.$uniqueSuffix;
|
$this->htmlId = $this->modelBinding.'-'.$uniqueSuffix;
|
||||||
} else {
|
} else {
|
||||||
$this->htmlId = (string) $this->id;
|
$this->htmlId = (string) $this->id;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue