# elementor/3.10.0-dev1/app/assets/js/layout/header.js

Elementor Website Builder – more than just a page builder, version 3.10.0-dev1. 40 lines.

- Page: https://pluginprobe.com/plugins/elementor/3.10.0-dev1/code/app/assets/js/layout/header.js
- Raw: https://pluginprobe.com/plugins/elementor/3.10.0-dev1/raw/app/assets/js/layout/header.js
- Modified: 2022-10-03T17:24:38+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/elementor/3.10.0-dev1/code/app/assets/js/layout/header.js#L10-L20`.

```javascript
import Grid from '../ui/grid/grid';
import HeaderButtons from './header-buttons';
import usePageTitle from 'elementor-app/hooks/use-page-title';

export default function Header( props ) {
	usePageTitle( { title: props.title } );

	let TitleTag = 'span',
		titleAttrs = {};

	if ( props.titleRedirectRoute ) {
		TitleTag = 'a';
		titleAttrs = {
			href: `#${ props.titleRedirectRoute }`,
			target: '_self',
		};
	}

	return (
		<Grid container alignItems="center" justify="space-between" className="eps-app__header">
			<TitleTag className="eps-app__logo-title-wrapper" { ...titleAttrs }>
				<i className="eps-app__logo eicon-elementor" />
				<h1 className="eps-app__title">{ props.title }</h1>
			</TitleTag>
			<HeaderButtons buttons={ props.buttons } />
		</Grid>
	);
}

Header.propTypes = {
	title: PropTypes.string,
	titleRedirectRoute: PropTypes.string,
	buttons: PropTypes.arrayOf( PropTypes.object ),
	onClose: PropTypes.func,
};

Header.defaultProps = {
	buttons: [],
};

```
