in packages/recoil/contrib/uri_persistence/Recoil_Link.js [53:84]
function LinkToRecoilSnapshot({
uriFromSnapshot,
snapshot,
...anchorProps
}: LinkToSnapshotProps): React.Node {
const gotoSnapshot = useGotoRecoilSnapshot();
const {onClick, target} = anchorProps;
const onClickWrapper = useCallback(
event => {
onClick?.(event);
if (
!event.defaultPrevented &&
event.button === 0 && // left-click
!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) &&
(!target || target === '_self')
) {
event.preventDefault();
gotoSnapshot(snapshot);
}
},
[target, onClick, gotoSnapshot, snapshot],
);
return (
<a
{...anchorProps}
href={uriFromSnapshot(snapshot)}
onClick={onClickWrapper}
/>
);
}