@atlaskit/page-layout
Version:
A collection of components which let you compose an application's page layout.
26 lines • 748 B
JavaScript
import { createContext, useContext, useEffect } from 'react';
import noop from '@atlaskit/ds-lib/noop';
// eslint-disable-next-line @repo/internal/react/require-jsdoc
export const SkipLinksContext = /*#__PURE__*/createContext({
skipLinksData: [],
registerSkipLink: noop,
unregisterSkipLink: noop
});
export const useSkipLinks = () => useContext(SkipLinksContext);
export const useSkipLink = (id, skipLinkTitle) => {
const {
registerSkipLink,
unregisterSkipLink
} = useSkipLinks();
useEffect(() => {
if (id && skipLinkTitle) {
registerSkipLink({
id,
skipLinkTitle
});
}
return () => {
unregisterSkipLink(id);
};
}, [id, skipLinkTitle, registerSkipLink, unregisterSkipLink]);
};