# code-block-pro/1.13.0/src/hooks/useLanguage.ts

Code Block Pro – Beautiful Syntax Highlighting, version 1.13.0. 28 lines.

- Page: https://pluginprobe.com/plugins/code-block-pro/1.13.0/code/src/hooks/useLanguage.ts
- Raw: https://pluginprobe.com/plugins/code-block-pro/1.13.0/raw/src/hooks/useLanguage.ts
- Modified: 2023-02-06T00:28:04+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/code-block-pro/1.13.0/code/src/hooks/useLanguage.ts#L10-L20`.

```typescript
import { useEffect, useState } from '@wordpress/element';
import { useLanguageStore } from '../state/language';
import { AttributesPropsAndSetter, Lang } from '../types';

export const useLanguage = ({
    attributes,
    setAttributes,
}: AttributesPropsAndSetter) => {
    const [language, set] = useState<Lang>(attributes.language);
    const { previousLanguage, setPreviousLanguage } = useLanguageStore();
    const setLanguage = (language: Lang) => {
        setAttributes({ language });
        set(language);
        setPreviousLanguage(language);
    };

    useEffect(() => {
        if (language) return;
        setAttributes({ language: previousLanguage });
    }, [language, previousLanguage, setAttributes]);

    useEffect(() => {
        set(attributes.language);
    }, [attributes.language]);

    return [language, setLanguage] as [Lang, typeof setLanguage];
};

```
