Viewing File: /home/maglabs/marco/wp-content/plugins/extendify/src/Chat/components/dialog/Header.jsx

import { Icon, Dropdown, MenuGroup, MenuItem } from '@wordpress/components';
import { __ } from '@wordpress/i18n';
import { moreVertical, check } from '@wordpress/icons';
import { updateOptions } from '@chat/api/Data';
import { chevron, robot } from '@chat/svg';

export const Header = ({
	question,
	reset,
	experienceLevel,
	setExperienceLevel,
	showHistory,
	setShowChat,
}) => {
	const experienceLevels = {
		beginner: __('Beginner', 'extendify-local'),
		intermediate: __('Intermediate', 'extendify-local'),
		advanced: __('Advanced', 'extendify-local'),
	};

	const updateExperienceLevel = (value) => {
		setExperienceLevel(value);
		updateOptions({ experienceLevel: value });
	};

	const hideChat = () => {
		setShowChat(false);
		updateOptions({ showChat: false });
	};

	return (
		<header className="flex items-center gap-2 justify-between">
			<div className="flex items-center gap-2">
				{(question || showHistory) && (
					<button
						type="button"
						onClick={reset}
						className="bg-transparent border-none p-0 cursor-pointer">
						<Icon
							icon={chevron}
							className="text-design-text fill-current h-4 rotate-90"
						/>
					</button>
				)}
				{showHistory && (
					<div className="text-white p-2 flex items-center">
						{__('Recent History', 'extendify-local')}
					</div>
				)}
			</div>
			{showHistory || (
				<div className="flex gap-2 items-center">
					<div className="rounded-full bg-white p-2 flex items-center">
						<Icon
							icon={robot}
							className="text-design-main fill-current w-4 h-4"
						/>
					</div>

					<Dropdown
						className="flex"
						contentClassName="origin-top-right rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none"
						position="bottom right"
						popoverProps={{ placement: 'bottom-start' }}
						renderToggle={({ onToggle }) => (
							<Icon
								icon={moreVertical}
								onClick={onToggle}
								className="text-design-text fill-current w-6 h-6 p-1 rounded cursor-pointer hover:bg-white/10"
							/>
						)}
						renderContent={() => (
							<MenuGroup
								label={__('WordPress Comfort Level', 'extendify-local')}>
								{Object.entries(experienceLevels).map(([key, label]) => (
									<MenuItem
										key={key}
										isSelected={experienceLevel === key}
										onClick={() => updateExperienceLevel(key)}
										icon={experienceLevel === key ? check : null}>
										{label}
									</MenuItem>
								))}
								<hr />
								<MenuItem onClick={hideChat}>
									{__('Hide the chat bot', 'extendify-local')}
								</MenuItem>
							</MenuGroup>
						)}
					/>
				</div>
			)}
		</header>
	);
};
Back to Directory File Manager