When using this component, we have an object that basically serves as an enum for the various position preferences we might need for different Popover use-cases.
I was hoping of adding this enum as part of the public API for this library.
Where To Add The enum
I noticed that this library has a single module.exports value (the Popover component) which is why I went with the static property on Popover directly vs. adding a named property on the module.exports object that would reference the POSITIONS enum object (my understanding is that doing something like module.exports.POSITIONS = lib.POSITIONS would effectively be like adding the static property anyways since module.exports would reference the exported Popover component).
Testing Modifications (i.e. Storybook)
I modified the underlying Storybook stories to use the new POSITIONS enum (exported from layout.js) to sanity check my changes.
Feel free to modify the naming pattern for the enum - I've just seen a general pattern of UPCASE enum names and UPCASE for the underlying property names
Summary
When using this component, we have an object that basically serves as an
enum
for the various position preferences we might need for differentPopover
use-cases.I was hoping of adding this
enum
as part of the public API for this library.Where To Add The
enum
I noticed that this library has a single
module.exports
value (thePopover
component) which is why I went with thestatic
property onPopover
directly vs. adding a named property on themodule.exports
object that would reference thePOSITIONS
enum object (my understanding is that doing something likemodule.exports.POSITIONS = lib.POSITIONS
would effectively be like adding thestatic
property anyways sincemodule.exports
would reference the exportedPopover
component).Testing Modifications (i.e.
Storybook
)I modified the underlying
Storybook
stories to use the newPOSITIONS
enum (exported fromlayout.js
) to sanity check my changes.Feel free to modify the naming pattern for the
enum
- I've just seen a general pattern ofUPCASE
enum names andUPCASE
for the underlying property names