Skip to content

Commit 25faa90

Browse files
authored
Fix #8449: Nested SplitterPanel detection logic (#8448)
* Fix: [Splitter] Nested SplitterPanel detection logic Current logic incorrectly identifies any nested Prime Component as a nested SplitterPanel causing incorrect behaviour. This change fixes that to identify SplitterPanel component only for such purpose. * fix formatting * fix formatting
1 parent dae9885 commit 25faa90

File tree

4 files changed

+58
-4
lines changed

4 files changed

+58
-4
lines changed

components/doc/common/docsectionnav.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,11 @@ export function DocSectionNav({ docs = [] }) {
138138
style={{
139139
display: 'flex',
140140
justifyContent: 'center',
141-
marginTop:'1rem'
141+
marginTop: '1rem'
142142
}}
143143
>
144-
<a href="https://primeui.store" target="_blank" rel="noopener" className='p-button p-component p-button-rounded p-button-sm'>
145-
<span className='p-button-label p-c'>Buy Now</span>
144+
<a href="https://primeui.store" target="_blank" rel="noopener" className="p-button p-component p-button-rounded p-button-sm">
145+
<span className="p-button-label p-c">Buy Now</span>
146146
</a>
147147
</span>
148148
</div>

components/lib/splitter/Splitter.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ export const Splitter = React.memo(
380380
prevSize.current = panelSize(panelSizes, 0);
381381
_panelSizes[i] = panelSize(panelSizes, i);
382382

383-
if (panelElement.childNodes && ObjectUtils.isNotEmpty(DomHandler.find(panelElement, "[data-pc-name='splitter']") && DomHandler.find(panelElement, "[data-pc-section='root']"))) {
383+
if (panelElement.childNodes && ObjectUtils.isNotEmpty(DomHandler.find(panelElement, "[data-pc-name='splitter']")) && ObjectUtils.isNotEmpty(DomHandler.find(panelElement, "[data-pc-section='root']"))) {
384384
!isUnstyled() && DomHandler.addClass(panelElement, 'p-splitter-panel-nested');
385385
panelElement.setAttribute('data-p-splitter-panel-nested', true);
386386
setNested(true);

components/lib/splitter/Splitter.spec.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,14 @@ describe('Splitter', () => {
7070
</>,
7171
'Without panels'
7272
);
73+
snapshot(
74+
<>
75+
<Splitter style={{ height: '300px' }} layout="vertical">
76+
<SplitterPanel>
77+
<div data-pc-section="root" />
78+
</SplitterPanel>
79+
</Splitter>
80+
</>,
81+
'Single Panel with some other nested prime component'
82+
);
7383
});

components/lib/splitter/__snapshots__/Splitter.spec.js.snap

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,3 +341,47 @@ exports[`Splitter Without panels 1`] = `
341341
/>
342342
</div>
343343
`;
344+
345+
exports[`Splitter Single Panel with some other nested prime component 1`] = `
346+
<div>
347+
<div
348+
class="p-splitter p-component p-splitter-vertical"
349+
data-p-splitter-resizing="false"
350+
data-pc-name="splitter"
351+
data-pc-section="root"
352+
style="height: 300px;"
353+
>
354+
<div
355+
class="p-splitter-panel"
356+
data-p-splitter-panel-nested="false"
357+
data-pc-section="splitterpanel.root"
358+
id="pr_id_9_0"
359+
role="presentation"
360+
style="flex-basis: calc(100% - 0px);"
361+
>
362+
<div
363+
data-pc-section="root"
364+
/>
365+
</div>
366+
<div
367+
class="p-splitter-gutter"
368+
data-p-splitter-gutter-resizing="false"
369+
data-pc-section="gutter"
370+
style="height: 4px;"
371+
>
372+
<div
373+
aria-controls="pr_id_9_0"
374+
aria-orientation="horizontal"
375+
aria-valuemax="100"
376+
aria-valuemin="0"
377+
aria-valuenow="100"
378+
aria-valuetext="100%"
379+
class="p-splitter-gutter-handle"
380+
data-pc-section="gutterhandler"
381+
role="separator"
382+
tabindex="0"
383+
/>
384+
</div>
385+
</div>
386+
</div>
387+
`;

0 commit comments

Comments
 (0)