1
1
'use client' ;
2
2
3
3
import Image from 'next/image' ;
4
+ import SearchBox from '@/components/Search/SearchBox' ;
4
5
import { TerminalUI } from './TerminalUI' ;
5
6
import Link from 'next/link' ;
6
7
import { Button } from '@dicedb/ui/button' ;
@@ -9,44 +10,8 @@ import { Terminal } from 'lucide-react';
9
10
import CommandProvider , { useCommandContext } from '@/context/command' ;
10
11
import CommandPanel from '../Overlays/CommandPanel' ;
11
12
12
- // utils
13
-
14
- function PlaygroundUI ( ) {
15
- const { isOpen } = useCommandContext ( ) ;
16
- return (
17
- < >
18
- < div
19
- data-testid = "playground"
20
- className = { `p-4 lg:p-0 lg:pl-[5%] transition-all duration-300 flex flex-col flex-grow h-screen bg-white text-gray-900 ${
21
- isOpen ? 'w-[73%]' : 'w-[95%]'
22
- } `}
23
- >
24
- < Header />
25
-
26
- < main
27
- data-testid = "playground-main"
28
- className = "h-full flex flex-col lg:flex-row gap-10 flex-grow overflow-hidden"
29
- >
30
- < div className = "w-full flex flex-col flex-grow" >
31
- < TerminalUI />
32
- </ div >
33
- </ main >
34
- </ div >
35
- < CommandPanel />
36
- </ >
37
- ) ;
38
- }
39
-
40
- export default function Playground ( ) {
41
- return (
42
- < CommandProvider >
43
- < PlaygroundUI />
44
- </ CommandProvider >
45
- ) ;
46
- }
47
-
48
13
function Header ( ) {
49
- const { setIsOpen, isOpen } = useCommandContext ( ) ;
14
+ const { setIsOpen } = useCommandContext ( ) ;
50
15
return (
51
16
< header
52
17
data-testid = "playground-header"
@@ -89,18 +54,67 @@ function Header() {
89
54
Submit an Issue
90
55
</ Button >
91
56
</ Link >
92
- { ! isOpen ? (
93
- < Button
94
- onClick = { ( ) => setIsOpen ( true ) }
95
- variant = "outline"
96
- className = "mt-2 w-fit gap-2 border-1 border-gray-700 !bg-gray-700 hover:scale-95 transition text-white flex items-center justify-center rounded-lg"
97
- data-testid = "submit-issue-button"
98
- >
99
- < Terminal className = "h-4 w-4" />
100
- Commands
101
- </ Button >
102
- ) : null }
57
+ < Button
58
+ onClick = { ( ) => setIsOpen ( true ) }
59
+ variant = "outline"
60
+ className = "mt-2 hidden lg:flex w-fit gap-2 border-1 border-gray-700 !bg-gray-700 hover:scale-95 transition text-white items-center justify-center rounded-lg"
61
+ data-testid = "submit-issue-button"
62
+ >
63
+ < Terminal className = "h-4 w-4" />
64
+ Commands
65
+ </ Button >
103
66
</ div >
104
67
</ header >
105
68
) ;
106
69
}
70
+
71
+ function Commands ( ) {
72
+ return (
73
+ < >
74
+ < div data-testid = "searchbox-container" className = "hidden lg:block" >
75
+ < CommandPanel />
76
+ </ div >
77
+ < div
78
+ data-testid = "searchbox-container"
79
+ className = "h-2/6 lg:h-full w-full lg:w-[40%] flex lg:hidden flex-col pb-4"
80
+ >
81
+ < div
82
+ data-testid = "searchbox-wrapper"
83
+ className = "h-full w-full flex-grow border border-gray-400 bg-gray-100 p-4 pb-0 rounded-lg shadow-md"
84
+ >
85
+ < SearchBox />
86
+ </ div >
87
+ </ div >
88
+ </ >
89
+ ) ;
90
+ }
91
+
92
+ function PlaygroundUI ( ) {
93
+ const { isOpen } = useCommandContext ( ) ;
94
+ return (
95
+ < div
96
+ data-testid = "playground"
97
+ className = { `p-4 lg:p-0 flex flex-col h-screen bg-white text-gray-900 ${ isOpen ? 'transition-all duration-200 lg:ml-[4%] lg:mr-[28%]' : 'lg:mx-[4%] mx-auto' } ` }
98
+ >
99
+ < Header />
100
+
101
+ < main
102
+ data-testid = "playground-main"
103
+ className = "h-full flex flex-col lg:flex-row gap-10 lg:gap-0 flex-grow overflow-hidden"
104
+ >
105
+ < div className = "h-4/6 lg:h-full w-full flex flex-col" >
106
+ < TerminalUI />
107
+ </ div >
108
+ < Commands />
109
+ </ main >
110
+ </ div >
111
+ ) ;
112
+ }
113
+
114
+ export default function Playground ( ) {
115
+ return (
116
+ < CommandProvider >
117
+ < PlaygroundUI />
118
+ </ CommandProvider >
119
+ ) ;
120
+ }
0 commit comments