(idA: string, idB: string)
| 91 | * Different ids will trigger a side-effect and re-render components hooked up with `useId`. |
| 92 | */ |
| 93 | export function mergeIds(idA: string, idB: string): string { |
| 94 | if (idA === idB) { |
| 95 | return idA; |
| 96 | } |
| 97 | |
| 98 | let setIdsA = idsUpdaterMap.get(idA); |
| 99 | if (setIdsA) { |
| 100 | setIdsA.forEach(ref => (ref.current = idB)); |
| 101 | return idB; |
| 102 | } |
| 103 | |
| 104 | let setIdsB = idsUpdaterMap.get(idB); |
| 105 | if (setIdsB) { |
| 106 | setIdsB.forEach(ref => (ref.current = idA)); |
| 107 | return idA; |
| 108 | } |
| 109 | |
| 110 | return idB; |
| 111 | } |
| 112 | |
| 113 | /** |
| 114 | * Used to generate an id, and after render, check if that id is rendered so we know |
no outgoing calls
no test coverage detected