new-marketplace
40 строк · 1.5 Кб
1/* eslint-disable @next/next/no-img-element */
2
3import Link from 'next/link';
4import { classNames } from 'primereact/utils';
5import React, { forwardRef, useContext, useImperativeHandle, useRef } from 'react';
6import { AppTopbarRef } from '@/types';
7import { LayoutContext } from './context/layoutcontext';
8
9const AppTopbar = forwardRef<AppTopbarRef>((props, ref) => {
10const { layoutConfig, layoutState, onMenuToggle, showProfileSidebar } = useContext(LayoutContext);
11const menubuttonRef = useRef(null);
12const topbarmenuRef = useRef(null);
13const topbarmenubuttonRef = useRef(null);
14
15useImperativeHandle(ref, () => ({
16menubutton: menubuttonRef.current,
17topbarmenu: topbarmenuRef.current,
18topbarmenubutton: topbarmenubuttonRef.current
19}));
20
21return (
22<div className="layout-topbar">
23<Link href="/" className="layout-topbar-logo">
24<span>Новый Маркетплейс</span>
25</Link>
26
27<button ref={menubuttonRef} type="button" className="p-link layout-menu-button layout-topbar-button" onClick={onMenuToggle}>
28<i className="pi pi-bars" />
29</button>
30
31<button ref={topbarmenubuttonRef} type="button" className="p-link layout-topbar-menu-button layout-topbar-button" onClick={showProfileSidebar}>
32<i className="pi pi-ellipsis-v" />
33</button>
34</div>
35);
36});
37
38AppTopbar.displayName = 'AppTopbar';
39
40export default AppTopbar;
41