File tree Expand file tree Collapse file tree 5 files changed +41
-21
lines changed
storybook/examples/rich-tooltip Expand file tree Collapse file tree 5 files changed +41
-21
lines changed Original file line number Diff line number Diff line change @@ -8,15 +8,15 @@ import {
88
99import { useCallback } from 'react'
1010
11- export type CloserOptions = {
11+ export type M3PopperCloserOptions = {
1212 active ?: boolean ;
1313 all ?: boolean ;
1414}
1515
16- export const createM3PopperCloserEffect = < T extends Element > ( {
16+ export default < T extends Element > ( {
1717 active = true ,
1818 all = false ,
19- } : CloserOptions = { } ) : ElementEffect < T > => {
19+ } : M3PopperCloserOptions = { } ) : ElementEffect < T > => {
2020 return useCallback ( ( el : T ) => {
2121 const _el = el as CloserTarget < T >
2222 _el . m3PopperCloseAll = all
Original file line number Diff line number Diff line change @@ -3,6 +3,11 @@ export type {
33 M3PopperProps ,
44} from './types'
55
6- export { createM3PopperCloserEffect } from './closer'
6+ export type {
7+ M3PopperCloserOptions ,
8+ } from './closer'
79
810export { default as M3Popper } from './M3Popper'
11+
12+ export { default as useM3PopperCloserEffect } from './closer'
13+ export { default as useM3PopperTarget } from './target'
Original file line number Diff line number Diff line change 1+ import type { ElementEffect } from '@/hooks/useElementEffect'
2+
3+ import {
4+ useCallback ,
5+ useState ,
6+ } from 'react'
7+
8+ export default < T extends Element > ( ) : [ T | null , ElementEffect < T > ] => {
9+ const [ target , setTarget ] = useState < T | null > ( null )
10+
11+ return [ target , useCallback ( ( el : T ) => {
12+ setTarget ( el )
13+ return ( ) => { }
14+ } , [ setTarget ] ) ]
15+ }
Original file line number Diff line number Diff line change @@ -30,6 +30,12 @@ export type {
3030 M3NavigationTabProps ,
3131} from '@/components/navigation'
3232
33+ export type {
34+ M3PopperMethods ,
35+ M3PopperProps ,
36+ M3PopperCloserOptions ,
37+ } from '@/components/popper'
38+
3339export type {
3440 M3RichTooltipMethods ,
3541 M3RichTooltipProps ,
@@ -80,7 +86,8 @@ export {
8086
8187export {
8288 M3Popper ,
83- createM3PopperCloserEffect ,
89+ useM3PopperCloserEffect ,
90+ useM3PopperTarget ,
8491} from '@/components/popper'
8592
8693export {
Original file line number Diff line number Diff line change @@ -4,17 +4,16 @@ import { M3Button } from '@/components/button'
44import { M3RichTooltip } from '@/components/rich-tooltip'
55
66import {
7- useState ,
8- } from 'react'
9-
10- import { createM3PopperCloserEffect } from '@/components/popper/closer'
7+ useM3PopperCloserEffect ,
8+ useM3PopperTarget ,
9+ } from '@/components/popper'
1110
1211const DeleteTooltip : FC = ( ) => {
13- const [ target , setTarget ] = useState < HTMLElement | null > ( null )
12+ const [ target , setTarget ] = useM3PopperTarget ( )
1413
1514 return (
16- < span ref = { setTarget } style = { { display : 'inline-block' } } >
17- < M3Button >
15+ < >
16+ < M3Button effects = { [ setTarget ] } >
1817 Delete
1918 </ M3Button >
2019
@@ -26,22 +25,16 @@ const DeleteTooltip: FC = () => {
2625 This action can not be undone
2726
2827 < M3RichTooltip . Footer >
29- < M3Button
30- appearance = "text"
31- effects = { [ createM3PopperCloserEffect ( ) ] }
32- >
28+ < M3Button appearance = "text" effects = { [ useM3PopperCloserEffect ( ) ] } >
3329 Proceed
3430 </ M3Button >
3531
36- < M3Button
37- appearance = "text"
38- effects = { [ createM3PopperCloserEffect ( ) ] }
39- >
32+ < M3Button appearance = "text" effects = { [ useM3PopperCloserEffect ( ) ] } >
4033 Cancel
4134 </ M3Button >
4235 </ M3RichTooltip . Footer >
4336 </ M3RichTooltip >
44- </ span >
37+ </ >
4538 )
4639}
4740
You can’t perform that action at this time.
0 commit comments