packages/dom-event-hijacker/stories/demo-default/index.tsx (46 lines of code) (raw):

/* eslint-disable no-console */ import React, { useRef, useEffect } from 'react'; import { Button, P } from '@alicloud/demo-rc-elements'; import hijackClickGlobal, { hijackClickInDom } from '../../src'; export default function DemoDefault(): JSX.Element { const refP = useRef<HTMLDivElement>(null); useEffect((): () => void => hijackClickGlobal({ condition(e) { return e.tagName === 'BUTTON'; }, callback(el) { console.info(el); } }), []); useEffect((): (() => void) | void => { if (refP.current) { return hijackClickInDom(refP.current, { condition(e) { return e.tagName === 'CODE'; }, callback(el) { console.info(el); } }); } }, []); return <> <Button>111</Button> <Button>222</Button> <Button>333</Button> <Button>444</Button> <P ref={refP}> <code>111</code> <code>222</code> <code>333</code> <code>444</code> </P> </>; }