Skip to content

Commit e0b3f74

Browse files
Add progress stepper tour step, updates per review meeting
1 parent bd7eb72 commit e0b3f74

3 files changed

Lines changed: 72 additions & 34 deletions

File tree

packages/react-core/src/demos/Animations/AnimationsStartTourModal.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ export const AnimationsStartTourModal: FunctionComponent<Props> = ({ onClose })
1313
aria-labelledby="guided-tour-title"
1414
aria-describedby="guided-tour-description"
1515
>
16-
<ModalHeader title="Explore PatternFly’s new animations" labelId="guided-tour-title" />
16+
<ModalHeader
17+
title={<div style={{ whiteSpace: 'initial' }}>Explore PatternFly’s new animations</div>}
18+
labelId="guided-tour-title"
19+
/>
1720
<ModalBody id="guided-tour-description">
1821
<Content component="p">
1922
Welcome! Many of our components now use motion to engage users, provide clear feedback, and improve usability.

packages/react-core/src/demos/Animations/Spotlight.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,13 @@ const Spotlight: React.FC<SpotlightProps> = ({ selector, resizeSelector }) => {
9191
borderWidth: 3,
9292
borderStyle: 'solid',
9393
borderColor: 'var(--pf-t--global--background--color--highlight--default)',
94+
borderRadius: 'var(--pf-t--global--border--radius--small)',
9495
background: 'transparent',
9596
pointerEvents: 'none'
9697
}
9798
: {};
9899

99-
return clientRect ? <div className="ocs-spotlight ocs-spotlight__element-highlight-noanimate" style={style} /> : null;
100+
return clientRect ? <div style={style} /> : null;
100101
};
101102

102103
export default Spotlight;

packages/react-core/src/demos/Animations/examples/Animations.tsx

Lines changed: 66 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,8 @@ export const GuidedTourSteps: GuidedTourStep[] = [
165165
<Content>Reduced-motion users will only see the fade, not the sliding motion.</Content>
166166
</>
167167
),
168-
spotlightSelector: '#expand-toggle-1'
168+
spotlightSelector: '#expand-toggle-1',
169+
popoverWidth: '460px'
169170
},
170171
{
171172
mobileOnly: true,
@@ -196,22 +197,24 @@ export const GuidedTourSteps: GuidedTourStep[] = [
196197
<Content component="p">Reduced-motion users will only see the fade, not the jiggle.</Content>
197198
</>
198199
),
200+
popoverWidth: '550px',
201+
mobilePopoverWidth: '275px',
199202
spotlightSelector: '#create-database-submit',
200203
spotlightResizeSelector: '#create-database-form'
201-
// },
202-
// {
203-
// stepId: 'progressStepper',
204-
// header: <div>In process indicator</div>,
205-
// content: (
206-
// <>
207-
// <Content component="p">
208-
// Watch as a process starts for step 2.
209-
// </Content>
210-
// <Content component="p">
211-
// When a task is running, the in-process icon now spins in place, providing clear and continuous feedback that the system is working.
212-
// </Content>
213-
// </>
214-
// )
204+
},
205+
{
206+
stepId: 'progressStepper',
207+
header: <div>In process indicator</div>,
208+
content: (
209+
<>
210+
<Content component="p">Watch as a process starts for step 2.</Content>
211+
<Content component="p">
212+
When a task is running, the in-process icon now spins in place, providing clear and continuous feedback that
213+
the system is working.
214+
</Content>
215+
</>
216+
),
217+
spotlightSelector: '#progress-stepper-1'
215218
}
216219
];
217220

@@ -370,16 +373,34 @@ const AnimationsPage: FunctionComponent = () => {
370373
</Button>
371374
</Td>
372375
<Td>
373-
<ProgressStepper isCompact>
374-
{activity.progress.map((stepVariant, stepIndex) => (
375-
<ProgressStep
376-
key={stepIndex}
377-
variant={stepVariant}
378-
icon={iconMap[stepVariant]}
379-
aria-label={`Step ${stepIndex + 1} is ${stepVariant}`}
380-
/>
381-
))}
382-
</ProgressStepper>
376+
{rowIndex === 1 ? (
377+
renderTourStepElement(
378+
'progressStepper',
379+
<ProgressStepper isCompact id={`progress-stepper-${rowIndex}`}>
380+
{activity.progress.map((stepVariant, stepIndex) => (
381+
<ProgressStep
382+
id={`${rowIndex}-${stepVariant}-${stepIndex}`}
383+
key={stepIndex}
384+
variant={stepVariant}
385+
icon={iconMap[stepVariant]}
386+
aria-label={`Step ${stepIndex + 1} is ${stepVariant}`}
387+
/>
388+
))}
389+
</ProgressStepper>
390+
)
391+
) : (
392+
<ProgressStepper isCompact>
393+
{activity.progress.map((stepVariant, stepIndex) => (
394+
<ProgressStep
395+
id={`progress-step-${rowIndex}-${stepVariant}-${stepIndex}`}
396+
key={stepIndex}
397+
variant={stepVariant}
398+
icon={iconMap[stepVariant]}
399+
aria-label={`Step ${stepIndex + 1} is ${stepVariant}`}
400+
/>
401+
))}
402+
</ProgressStepper>
403+
)}
383404
</Td>
384405
<Td isActionCell>
385406
<Dropdown
@@ -423,15 +444,15 @@ const AnimationsPage: FunctionComponent = () => {
423444
<Content component="p">
424445
Click <strong>Add alert</strong>. In a moment, a new toast alert will appear.
425446
</Content>
426-
<Content component="p">
427-
Notice how it slides smoothly into view to draw your eye to critical information, and then slides out just
428-
as smoothly once it expires.
429-
</Content>
430447
<Content component="p">
431448
<Button variant="link" isInline onClick={() => addNotification(true)}>
432449
Add alert
433450
</Button>
434451
</Content>
452+
<Content component="p">
453+
Notice how it slides smoothly into view to draw your eye to critical information, and then slides out just
454+
as smoothly once it expires.
455+
</Content>
435456
</>
436457
);
437458
}
@@ -456,14 +477,14 @@ const AnimationsPage: FunctionComponent = () => {
456477
<Content component="p">
457478
Click <strong>Add notification</strong>. Watch for a new notification to arrive.
458479
</Content>
459-
<Content component="p">
460-
The bell icon "rings" with a subtle rotation to quickly catch your attention as a message comes in.
461-
</Content>
462480
<Content component="p">
463481
<Button variant="link" isInline onClick={() => addNotification(false)}>
464482
Add notification
465483
</Button>
466484
</Content>
485+
<Content component="p">
486+
The bell icon "rings" with a subtle rotation to quickly catch your attention as a message comes in.
487+
</Content>
467488
</>
468489
);
469490
}
@@ -474,6 +495,19 @@ const AnimationsPage: FunctionComponent = () => {
474495
setSelectedTab(2);
475496
setShowForm(true);
476497
}
498+
if (tourStep?.stepId === 'progressStepper') {
499+
setSelectedTab(0);
500+
setTimeout(() => {
501+
const element = document.getElementById('progress-stepper-1');
502+
if (element) {
503+
element.scrollIntoView({
504+
behavior: 'smooth', // Smooth scrolling animation
505+
block: 'center', // Align element to the center of the viewport
506+
inline: 'nearest' // Horizontal alignment (optional)
507+
});
508+
}
509+
}, 100);
510+
}
477511
}, [tourStep?.stepId, setCustomStepContent, addNotification, isMobile]);
478512

479513
useEffect(() => {

0 commit comments

Comments
 (0)