import { getIntlayer } from "../getIntlayer.mjs";
import { getServerContext } from "./serverContext.mjs";
import { IntlayerServerContext } from "./IntlayerServerProvider.mjs";

//#region ../react-intlayer/dist/esm/server/useI18n.mjs
/**
* Hook that provides a translation function `t()` for accessing nested content by key.
* This hook mimics the pattern found in libraries like i18next, next-intl, and vue-i18n.
*
* @param namespace - The dictionary key to scope translations to
* @param locale - Optional locale override. If not provided, uses the current context locale
* @returns A translation function `t(key)` that returns the translated content for the given key
*
* @example
* ```tsx
* const t = useI18n('IndexPage');
* const title = t('title'); // Returns translated string for 'IndexPage.title'
* const nestedContent = t('section.subtitle'); // Returns 'IndexPage.section.subtitle'
* ```
*/
const useI18n = (namespace, locale) => {
	const dictionaryContent = getIntlayer(namespace, locale ?? getServerContext(IntlayerServerContext));
	const t = (path) => {
		if (!path) return dictionaryContent;
		const pathArray = path.split(".");
		let current = dictionaryContent;
		for (const key of pathArray) {
			current = current?.[key];
			if (current === void 0) return dictionaryContent;
		}
		return current;
	};
	return t;
};

//#endregion
export { useI18n };
//# sourceMappingURL=useI18n.mjs.map