11"use client" ;
22import { useState } from "react" ;
33import { styles } from "./Header.style" ;
4- import { Box , Typography } from "@mui/material" ;
4+ import { Box , Typography , Link } from "@mui/material" ;
55import Table from "@/app/components/Table" ;
66import Dialog from "@/app/components/Dialog" ;
77import CustomButton from "@/app/components/CustomButton" ;
@@ -13,18 +13,21 @@ import {
1313import { strOrNum } from "@/app/general/types" ;
1414import {
1515 SAMPLE_SIZE ,
16- ATTRIBUTES_BUTTON_TEXT ,
17- SAMPLE_BUTTON_TEXT ,
16+ HEADER_BUTTONS_TEXTS ,
1817 NO_HELP_DESCRIPTION ,
18+ NO_MAIL_PROVIDED ,
19+ HEADER_DIALOGS_TITLES ,
1920} from "@/app/general/constants" ;
2021import { getTableInfo } from "@/app/general/utils" ;
2122
2223export default function Header ( { bot } : HeaderProps ) {
2324 const [ openAttribute , setOpenAttribute ] = useState < boolean > ( false ) ;
2425 const [ openData , setOpenData ] = useState < boolean > ( false ) ;
2526 const [ openHelp , setOpenHelp ] = useState < boolean > ( false ) ;
27+ const [ openMail , setOpenMail ] = useState < boolean > ( false ) ;
2628
2729 const helpDescription = bot ?. _details . helpDescription ;
30+ const mailInfo = bot ?. _details . mailInfo ;
2831 const { botHeaders, botColumns, rows } = getTableInfo ( bot ) ;
2932 const sampleRows = rows . slice ( 0 , SAMPLE_SIZE ) ;
3033
@@ -34,16 +37,20 @@ export default function Header({ bot }: HeaderProps) {
3437 } ) ) ;
3538
3639 const buttons = [
37- { onClick : ( ) => setOpenAttribute ( true ) , text : ATTRIBUTES_BUTTON_TEXT } ,
38- { onClick : ( ) => setOpenData ( true ) , text : SAMPLE_BUTTON_TEXT } ,
39- { onClick : ( ) => setOpenHelp ( true ) , text : "Help!" } ,
40+ {
41+ onClick : ( ) => setOpenAttribute ( true ) ,
42+ text : HEADER_BUTTONS_TEXTS . attributes ,
43+ } ,
44+ { onClick : ( ) => setOpenData ( true ) , text : HEADER_BUTTONS_TEXTS . data } ,
45+ { onClick : ( ) => setOpenHelp ( true ) , text : HEADER_BUTTONS_TEXTS . help } ,
46+ { onClick : ( ) => setOpenMail ( true ) , text : HEADER_BUTTONS_TEXTS . mail } ,
4047 ] ;
4148
4249 const dialogs = [
4350 {
4451 open : openAttribute ,
4552 setOpen : setOpenAttribute ,
46- title : "Details of Attributes" ,
53+ title : HEADER_DIALOGS_TITLES . attributes ,
4754 children : (
4855 < Table < NameAndDescription >
4956 headers = { [ "name" , "description" ] }
@@ -54,7 +61,7 @@ export default function Header({ bot }: HeaderProps) {
5461 {
5562 open : openData ,
5663 setOpen : setOpenData ,
57- title : "Sample of Data" ,
64+ title : HEADER_DIALOGS_TITLES . data ,
5865 children : (
5966 < Table < generalObject < strOrNum > >
6067 headers = { botHeaders }
@@ -65,9 +72,19 @@ export default function Header({ bot }: HeaderProps) {
6572 {
6673 open : openHelp ,
6774 setOpen : setOpenHelp ,
68- title : "Help!" ,
75+ title : HEADER_DIALOGS_TITLES . help ,
6976 content : helpDescription ?? NO_HELP_DESCRIPTION ,
7077 } ,
78+ {
79+ open : openMail ,
80+ setOpen : setOpenMail ,
81+ title : HEADER_DIALOGS_TITLES . mail ,
82+ children : (
83+ < Link href = { `mailto:${ mailInfo } ` } >
84+ { mailInfo ?? NO_MAIL_PROVIDED }
85+ </ Link >
86+ ) ,
87+ } ,
7188 ] ;
7289
7390 return (
0 commit comments