Comments (3)
What would you say about about passing all "extra" props as lockProps
, and also component name as as
:
<FocusLock className={...} lockProps={onTransitionEnd:{...}, onClick:{...}} as="section">
This makes things more typable (allowing only one prop with anything inside), and could not introduce any breaking changes to the existing customers - in your case "something" could just start working, while it wasnt.
Next - you can create a slim wrapper around Focus lock to expose it to your code with your interface
const {
children,
disabled,
noFocusGuards,
persistentFocus,
autoFocus,
allowTextSelection,
group,
whiteList,
...lockProps
} = this.props;
return <FocusLock ... lockProps={lockProps} />
Another option, is pass all "extra" props to as
<FocusLock ... as={<div className={...} onTransitionEnd={...} onClick={...}}/>
And I will cloneElement
in the internals. Probably this is a bit easiers to use, but a bit uncommon.
Thoughts?
from react-focus-lock.
I don't think cloneElement
is necessary here, seems like redundant work both in writing code and in runtime.
Not sure if separate prop object for actually rendered element is more typable, but it of course can solve the problem too!
from react-focus-lock.
v.1.14.0
from react-focus-lock.
Related Issues (20)
- preventScroll is affecting scroll inside a modal
- react-focus-lock breaks password managers' autofill features HOT 7
- Socket dev picking up some security issues. HOT 3
- Add an `onError` callback for when focus fighting is detected HOT 2
- Feature request - Clickaway deactivation HOT 2
- `crossFrame={false}` has cross-browser Safari issues HOT 7
- Can't click without scroll being changed HOT 3
- Invalid hook call when using it inside a library HOT 3
- Issue with importing FocusLock component HOT 18
- /*#__PURE__*/ comment throws warning in Rollup HOT 3
- Unclear behavior during loosing focus in unmanaged area HOT 3
- Migrate to Typescript HOT 1
- Remove sidecar HOT 1
- useFocusLock HOT 1
- Version `2.11.0` doesn't compile with TS HOT 1
- Returning focus to element inside an iframe HOT 1
- ESM compatibility breaks WebPack build HOT 16
- added file extension in imports as it was breaking in webpack 5 HOT 2
- version 2.12.0 , feature "ESM Compatible" breaks React app CRA build with Chackra UI HOT 3
- Module Resolution Error: Missing File Extensions in Import Statements HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-focus-lock.