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

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

- Page: https://pluginprobe.com/plugins/code-block-pro/1.28.0/code/src/hooks/useLanguage.ts
- Raw: https://pluginprobe.com/plugins/code-block-pro/1.28.0/raw/src/hooks/useLanguage.ts
- Modified: 2026-04-12T13:22:22+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.28.0/code/src/hooks/useLanguage.ts#L10-L20`.

```typescript
import { useEffect, useState } from '@wordpress/element';
import { useLanguageStore } from '../state/language';
import type { 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];
};

```
