Skip to content

Commit

Permalink
OnToggleClick [q]
Browse files Browse the repository at this point in the history
  • Loading branch information
stopsopa committed Dec 10, 2024
1 parent 964c81c commit c175394
Showing 1 changed file with 51 additions and 2 deletions.
53 changes: 51 additions & 2 deletions pages/js/popper/popper.entry.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,24 @@ function useTooltipOnHover(generateOptions, defautShow = false) {
},
};
}
/**
* Extended hook for toggle click
*/
function useTooltipOnToggleClick(generateOptions, defautShow = false) {
const props = useTooltip(generateOptions);

const [show, setShow] = useState(defautShow);

return {
...props,
show,
events: {
onClick: () => setShow((show) => !show),
},
};
}

const AlwaysShow = () => {
// const [setReferenceElement, setPopperElement, setArrowElement, attributes, styles] = useTooltip((arrowElement) => ({
const tooltip = useTooltip((arrowElement) => ({
modifiers: [
{
Expand Down Expand Up @@ -73,7 +88,6 @@ const AlwaysShow = () => {
};

const OnHover = () => {
// const [setReferenceElement, setPopperElement, setArrowElement, attributes, styles, show, events] = useTooltipOnHover(
const tooltip = useTooltipOnHover((arrowElement) => ({
modifiers: [
{
Expand Down Expand Up @@ -107,6 +121,40 @@ const OnHover = () => {
);
};

const OnToggleClick = () => {
const tooltip = useTooltipOnToggleClick((arrowElement) => ({
modifiers: [
{
name: "offset",
options: {
offset: [0, 8],
element: arrowElement,
},
},
],
}));

return (
<>
<button type="button" ref={tooltip.setReferenceElement} {...tooltip.events}>
On hover target
</button>

{tooltip.show && (
<div
ref={tooltip.setPopperElement}
style={tooltip.styles.popper}
className="tooltipstyle show"
{...tooltip.attributes.popper}
>
On hover
<div ref={tooltip.setArrowElement} style={tooltip.styles.arrow} className="arrow" data-popper-arrow />
</div>
)}
</>
);
};

function Main() {
const [length, setLength] = useState(1);

Expand All @@ -119,6 +167,7 @@ function Main() {
<div key={i}>
<AlwaysShow />
<OnHover />
<OnToggleClick />
</div>
))}
</div>
Expand Down

0 comments on commit c175394

Please sign in to comment.