File size: 4,552 Bytes
760b33c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import React from 'react';
import { Tabs, TabsContent, TabsList, TabsTrigger } from './ui/tabs';
import { LearningModeSelector } from './LearningModeSelector';
import { UserGuide } from './UserGuide';
import { RadioGroup, RadioGroupItem } from './ui/radio-group';
import { Label } from './ui/label';
import { Button } from './ui/button';
import { RotateCcw, Settings, User, Users } from 'lucide-react';
import { Separator } from './ui/separator';
import { GroupMembers } from './GroupMembers';
import type { LearningMode, Language, SpaceType, GroupMember } from '../App';

interface LeftSidebarProps {
  learningMode: LearningMode;
  language: Language;
  onLearningModeChange: (mode: LearningMode) => void;
  onLanguageChange: (lang: Language) => void;
  spaceType: SpaceType;
  onSpaceTypeChange: (type: SpaceType) => void;
  groupMembers: GroupMember[];
}

export function LeftSidebar({
  learningMode,
  language,
  onLearningModeChange,
  onLanguageChange,
  spaceType,
  onSpaceTypeChange,
  groupMembers,
}: LeftSidebarProps) {
  return (
    <div className="flex-1 overflow-auto">
      {/* Space Selector */}
      <div className="p-4 border-b border-border space-y-3">
        <Label>Workspace</Label>
        <RadioGroup value={spaceType} onValueChange={(value) => onSpaceTypeChange(value as SpaceType)}>
          <div className="flex items-center space-x-2 p-2 rounded-lg hover:bg-muted/50 transition-colors">
            <RadioGroupItem value="individual" id="individual" />
            <Label htmlFor="individual" className="cursor-pointer flex items-center gap-2 flex-1">
              <User className="h-4 w-4" />
              Individual Space
            </Label>
          </div>
          <div className="flex items-center space-x-2 p-2 rounded-lg hover:bg-muted/50 transition-colors">
            <RadioGroupItem value="group" id="group" />
            <Label htmlFor="group" className="cursor-pointer flex items-center gap-2 flex-1">
              <Users className="h-4 w-4" />
              Group Space
            </Label>
          </div>
        </RadioGroup>
      </div>

      {/* Group Members - Only show in group mode */}
      {spaceType === 'group' && (
        <div className="p-4 border-b border-border">
          <GroupMembers members={groupMembers} />
        </div>
      )}

      <Tabs defaultValue="settings" className="h-full flex flex-col">
        <div className="px-4 pt-4">
          <TabsList className="grid w-full grid-cols-2">
            <TabsTrigger value="settings">Settings</TabsTrigger>
            <TabsTrigger value="guide">Guide</TabsTrigger>
          </TabsList>
        </div>

        <TabsContent value="settings" className="flex-1 mt-0 p-4 space-y-6">
          <div className="space-y-4">
            <div>
              <h3>Model Settings</h3>
            </div>

            <div className="space-y-2">
              <Label>Model</Label>
              <div className="px-3 py-2 bg-muted rounded-md">
                <code className="text-sm">gpt-4.1-mini</code>
              </div>
            </div>

            <div className="space-y-2">
              <Label>Language</Label>
              <RadioGroup value={language} onValueChange={(value) => onLanguageChange(value as Language)}>
                <div className="flex items-center space-x-2">
                  <RadioGroupItem value="auto" id="auto" />
                  <Label htmlFor="auto" className="cursor-pointer">Auto</Label>
                </div>
                <div className="flex items-center space-x-2">
                  <RadioGroupItem value="en" id="en" />
                  <Label htmlFor="en" className="cursor-pointer">English</Label>
                </div>
                <div className="flex items-center space-x-2">
                  <RadioGroupItem value="zh" id="zh" />
                  <Label htmlFor="zh" className="cursor-pointer">简体中文</Label>
                </div>
              </RadioGroup>
            </div>
          </div>

          <Separator />

          <div className="space-y-3">
            <Button variant="outline" className="w-full gap-2" disabled>
              <Settings className="h-4 w-4" />
              System Settings
            </Button>
            <p className="text-xs text-muted-foreground text-center">
              © 2025 Clare AI Teaching Assistant
            </p>
          </div>
        </TabsContent>

        <TabsContent value="guide" className="flex-1 mt-0 p-4">
          <UserGuide />
        </TabsContent>
      </Tabs>
    </div>
  );
}