Skip to content

Commit

Permalink
main 🧊 add use prefferd languages
Browse files Browse the repository at this point in the history
  • Loading branch information
debabin committed Jun 2, 2024
1 parent 2681157 commit 0e8fc27
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 24 deletions.
9 changes: 0 additions & 9 deletions docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -87,15 +87,6 @@ export default async () => {
// }
},
themeConfig: {
sidebar: [
{
text: 'Examples',
items: [
{ text: 'Markdown Examples', link: '/markdown-examples' },
{ text: 'Runtime API Examples', link: '/api-examples' }
]
}
],
socialLinks: [
{ icon: 'github', link: 'https://github.com/siberiacancode/reactuse' },
{ icon: 'npm', link: 'https://github.com/siberiacancode/reactuse' },
Expand Down
3 changes: 3 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,9 @@ features:
- title: usePageLeave
details: Hook what calls given function when mouse leaves the page
link: /functions/hooks/usePageLeave
- title: usePreferredLanguages
details: Hook that returns a browser preferred languages from navigator
link: /functions/hooks/usePreferredLanguages
- title: usePrevious
details: Hook that returns the previous value
link: /functions/hooks/usePrevious
Expand Down
21 changes: 10 additions & 11 deletions src/hooks/usePreferredLanguages/usePreferredLanguages.demo.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,17 @@ import { usePreferredLanguages } from './usePreferredLanguages';
const Demo = () => {
const languages = usePreferredLanguages();

const date = new Date();
const formattedDate = new Intl.DateTimeFormat(languages).format(date);

return (
<div>
<p>FormattedDate: {formattedDate}</p>
<ul>
{languages.map((lang) => (
<li key={lang}>{lang}</li>
))}
</ul>
</div>
<ul>
{languages.map((language) => (
<li key={language}>
<code>{language}</code> locale date -{' '}
<code>
<time>{new Date(Date.now()).toLocaleDateString(language)}</time>
</code>
</li>
))}
</ul>
);
};

Expand Down
8 changes: 4 additions & 4 deletions src/hooks/usePreferredLanguages/usePreferredLanguages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ import React from 'react';

/**
* @name usePreferredLanguages
* @description Hook that returns a browser preferred languages from navigator.
* @description Hook that returns a browser preferred languages from navigator
*
* @returns {readonly string[]} Readonly array of strings representing the user's preferred languages
* @returns {readonly string[]} An array of strings representing the user's preferred languages
*
* @example
* const languages = usePreferredLanguages()
* const languages = usePreferredLanguages();
*/
export const usePreferredLanguages = () => {
const subscribe = (callback: () => void) => {
Expand All @@ -20,7 +20,7 @@ export const usePreferredLanguages = () => {

const getSnapshot = () => window.navigator.languages;

const getServerSnapshot = () => ['ru-RU', 'en-US'] as const;
const getServerSnapshot = () => ['en'] as const;

return React.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
};

0 comments on commit 0e8fc27

Please sign in to comment.