Skip to content

Commit 2c8c9c1

Browse files
committed
demo/exam: nicer titles
1 parent b5d56c1 commit 2c8c9c1

File tree

6 files changed

+84
-9
lines changed

6 files changed

+84
-9
lines changed

demo/exam/app.go

+19-3
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,12 @@ func renderExamWindow(a *App) interface{} {
136136
case *maths.MultipleChoice:
137137

138138
g := forms.NewGrid()
139+
140+
r0 := g.AddRow()
141+
r0.AddCol(nil)
142+
r0.AddCol(forms.NewTitle(k.Question, 1)).Steps = 6
143+
r0.AddCol(nil)
144+
139145
r := g.AddRow()
140146
r.AddCol(nil)
141147

@@ -174,6 +180,12 @@ func renderExamWindow(a *App) interface{} {
174180

175181
w.AddMenu("Выберите наибольшее число", nil)
176182
g := forms.NewGrid()
183+
184+
r0 := g.AddRow()
185+
r0.AddCol(nil)
186+
r0.AddCol(forms.NewTitle("Что больше?", 1)).Steps = 6
187+
r0.AddCol(nil)
188+
177189
r := g.AddRow()
178190
r.AddCol(nil)
179191

@@ -231,16 +243,20 @@ func renderAnswers(a *App) interface{} {
231243

232244
g := forms.NewGrid()
233245

234-
g.AddRow()
246+
r0 := g.AddRow()
247+
r0.AddCol(nil)
248+
r0.AddCol(forms.NewTitle("Правильные ответы", 1)).Steps = 8
249+
r0.AddCol(nil)
250+
235251
rGrid := g.AddRow()
236252

237-
rGrid.AddCol(nil).Steps = 1
253+
rGrid.AddCol(nil)
238254

239255
t := forms.NewTable()
240256
cGrid := rGrid.AddCol(t)
241257
cGrid.Steps = 6
242258

243-
rGrid.AddCol(nil).Steps = 1
259+
rGrid.AddCol(nil)
244260

245261
t.AddTextColumn("Задание")
246262
t.AddTextColumn("Ответ")

forms/button.go

+21
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,24 @@ func NewButton(text string, action *Action) *Button {
1616
Action: action,
1717
}
1818
}
19+
20+
type Label struct {
21+
Type string `json:"type"`
22+
Text string `json:"text"`
23+
Level int `json:"level"`
24+
}
25+
26+
func NewLabel(text string) *Label {
27+
return &Label{
28+
Type: "label",
29+
Text: text,
30+
}
31+
}
32+
33+
func NewTitle(text string, level int) *Label {
34+
return &Label{
35+
Type: "label",
36+
Text: text,
37+
Level: level,
38+
}
39+
}

web/src/components/Grid.jsx

+7-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,13 @@ const Row = ({cols, dispatch}) => {
77
</div>;
88
};
99

10-
const Col = ({content, dispatch}) => {
11-
return <div className="col">
10+
const Col = ({content, dispatch, steps}) => {
11+
12+
var style = "col";
13+
if (steps) {
14+
style += " col-" + steps;
15+
}
16+
return <div className={style}>
1217
<Render {...content} dispatch={dispatch} />
1318
</div>;
1419
};

web/src/components/Image.jsx

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
import React, { Component } from 'react';
22

33

4-
const Image = ({src}) => (
5-
<img className="img-fluid" src={src} />
6-
);
4+
const Image = ({src, dispatch, action}) => {
5+
6+
if (action == null) {
7+
return <img className="img-fluid" src={src} />;
8+
}
9+
10+
return <img className="img-fluid" src={src} onClick={() => dispatch(action) }/>;
11+
};
712

813
export default Image;

web/src/components/Label.jsx

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import React, { Component } from 'react';
2+
3+
4+
const Label = ({text, level}) => {
5+
6+
if (level == 1) {
7+
return <h1>{text}</h1>;
8+
}
9+
if (level==2) {
10+
return <h2>{text}</h2>;
11+
}
12+
13+
if (level==3) {
14+
return <h3>{text}</h3>;
15+
}
16+
17+
if (level==4) {
18+
return <h4>{text}</h4>;
19+
}
20+
21+
return <span>{text}</span>;
22+
23+
};
24+
25+
export default Label;

web/src/components/Render.jsx

+4-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ import Image from './Image';
1616

1717
import Button from './Button';
1818

19+
import Label from './Label';
20+
1921
import Grid from './Grid';
2022

2123
import Placeholder from './Placeholder';
@@ -100,7 +102,8 @@ var color = [
100102
return <Placeholder {...rest} />;
101103
case 'grid':
102104
return <Grid {...rest} />;
103-
105+
case 'label':
106+
return <Label {...rest} />;
104107
default:
105108
return (<p>Unknown render type {type}</p>);
106109
}

0 commit comments

Comments
 (0)