Skip to content

Commit bee5373

Browse files
committed
[dashboard] Re-implement default IDE switch for new dashboard
1 parent f1b574d commit bee5373

File tree

2 files changed

+31
-3
lines changed

2 files changed

+31
-3
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
export interface OptionCardProps {
2+
title: string;
3+
selected: boolean;
4+
onClick: () => void;
5+
children?: React.ReactNode;
6+
}
7+
8+
function OptionCard(props: OptionCardProps) {
9+
return <div className={`rounded-xl p-4 border-2 ${props.selected ? 'border-green-500' : 'border-gray-300 hover:border-gray-400'}`}>
10+
<p className={`text-base font-semibold ${props.selected ? 'color-green-600' : 'color-gray-300 hover:color-gray-400'}`}>{props.title}</p>
11+
{props.children}
12+
</div>;
13+
}
14+
15+
export default OptionCard;

components/dashboard/src/settings/DefaultIDE.tsx

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,24 @@
1+
import { useContext, useState } from "react";
2+
import OptionCard from "../components/OptionCard";
13
import { SettingsPage } from "../components/SettingsPage";
2-
import settingsMenu from './settings-menu';
4+
// import { getGitpodService } from "../service/service";
5+
import { UserContext } from "../user-context";
6+
import settingsMenu from "./settings-menu";
37

48
export default function DefaultIDE() {
9+
const { user } = useContext(UserContext);
10+
const [ defaultIde, setDefaultIde ] = useState<string>(user?.additionalData?.ideSettings?.defaultIde || 'code');
11+
512
return <div>
613
<SettingsPage title='Default IDE' subtitle='Configure your default IDE' menuEntries={settingsMenu}>
7-
<div className="lg:px-28 px-10 flex pt-10">
8-
Default IDE
14+
<div className="flex flex-col lg:flex-row">
15+
<div className="pb-6">
16+
<div className="pt-6">
17+
<OptionCard title="Code" selected={defaultIde === 'code'} onClick={()=>setDefaultIde('code')}></OptionCard>
18+
<OptionCard title="Theia" selected={defaultIde === 'theia'} onClick={()=>setDefaultIde('theia')}></OptionCard>
19+
<OptionCard title="Custom" selected={!['code', 'theia'].includes(defaultIde)} onClick={()=>setDefaultIde('')}></OptionCard>
20+
</div>
21+
</div>
922
</div>
1023
</SettingsPage>
1124
</div>;

0 commit comments

Comments
 (0)