@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
40 lines (37 loc) • 1.18 kB
JavaScript
'use client';
import { jsx } from 'react/jsx-runtime';
import { createContext, useContext, useState } from 'react';
import { useIsomorphicEffect } from '@mantine/hooks';
const DirectionContext = createContext({
dir: "ltr",
toggleDirection: () => {
},
setDirection: () => {
}
});
function useDirection() {
return useContext(DirectionContext);
}
function DirectionProvider({
children,
initialDirection = "ltr",
detectDirection = true
}) {
const [dir, setDir] = useState(initialDirection);
const setDirection = (direction) => {
setDir(direction);
document.documentElement.setAttribute("dir", direction);
};
const toggleDirection = () => setDirection(dir === "ltr" ? "rtl" : "ltr");
useIsomorphicEffect(() => {
if (detectDirection) {
const direction = document.documentElement.getAttribute("dir");
if (direction === "rtl" || direction === "ltr") {
setDirection(direction);
}
}
}, []);
return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: { dir, toggleDirection, setDirection }, children });
}
export { DirectionContext, DirectionProvider, useDirection };
//# sourceMappingURL=DirectionProvider.mjs.map