1
1
package main
2
2
3
3
import (
4
- "fmt"
5
- "github.com/charmbracelet/huh"
6
4
"github.com/charmbracelet/lipgloss"
7
5
"github.com/mdp/qrterminal/v3"
8
6
"strings"
@@ -18,7 +16,7 @@ func (m Model) viewFormPage() string {
18
16
// Generate the QR code string
19
17
qrBuilder := & strings.Builder {}
20
18
qrterminal .GenerateWithConfig (
21
- "https://github.com/mdp/qrterminal" , // You can use your own content here
19
+ m . generatedURL , // You can use your own content here
22
20
qrterminal.Config {
23
21
Level : qrterminal .L , // Low error correction for smaller QR code
24
22
Writer : qrBuilder , // Write QR code output to strings.Builder
@@ -32,29 +30,39 @@ func (m Model) viewFormPage() string {
32
30
qrStyled := lipgloss .NewStyle ().
33
31
Border (lipgloss .RoundedBorder (), true ). // Add double-line border around the QR code
34
32
BorderForeground (lipgloss .AdaptiveColor (indigo )). // Add some space below the QR code
35
- Render (s .StatusHeader .Render ("Qr code to the game" ) + "\n \n " + qrCodeString )
33
+ Render (s .StatusHeader .Render ("Qr code to the game" ) + "\n \n " + qrCodeString + " \n \n " + m . generatedURL )
36
34
37
35
// Status (right side)
38
36
var status string
39
37
{
40
38
41
39
var (
42
- answer1 string
43
- answer2 string
44
- answer3 string
40
+ color string
41
+ formType string
42
+ flux string
43
+ inOrbit string
44
+ isExo string
45
45
)
46
46
47
- if m .form .GetString ("answer1 " ) != "" {
48
- answer1 = m .form .GetString ("answer1 " )
49
- answer1 = "\n \n " + s .StatusHeader .Render ("Answer 1 " ) + "\n " + answer1
47
+ if m .form .GetString ("color " ) != "" {
48
+ color = m .form .GetString ("color " )
49
+ color = "\n \n " + s .StatusHeader .Render ("Planet Color " ) + "\n " + color
50
50
}
51
- if m .form .GetString ("answer2 " ) != "" {
52
- answer2 = m .form .GetString ("answer2 " )
53
- answer2 = "\n \n " + s .StatusHeader .Render ("Answer 2 " ) + "\n " + answer2
51
+ if m .form .GetString ("formType " ) != "" {
52
+ formType = m .form .GetString ("formType " )
53
+ formType = "\n \n " + s .StatusHeader .Render ("Planet Form " ) + "\n " + formType
54
54
}
55
- if m .form .GetString ("answer3" ) != "" {
56
- answer3 = m .form .GetString ("answer3" )
57
- answer3 = "\n \n " + s .StatusHeader .Render ("Answer 3" ) + "\n " + answer3
55
+ if m .form .GetString ("flux" ) != "" {
56
+ flux = m .form .GetString ("flux" )
57
+ flux = "\n \n " + s .StatusHeader .Render ("Flux" ) + "\n " + flux
58
+ }
59
+ if m .form .GetString ("inOrbit" ) != "" {
60
+ inOrbit = m .form .GetString ("inOrbit" )
61
+ inOrbit = "\n \n " + s .StatusHeader .Render ("Is in orbit" ) + "\n " + inOrbit
62
+ }
63
+ if m .form .GetString ("isExoplanet" ) != "" {
64
+ isExo = m .form .GetString ("isExoplanet" )
65
+ isExo = "\n \n " + s .StatusHeader .Render ("Is exoplanet" ) + "\n " + isExo
58
66
}
59
67
60
68
const statusWidth = 28
@@ -64,13 +72,15 @@ func (m Model) viewFormPage() string {
64
72
Width (statusWidth ).
65
73
MarginLeft (statusMarginLeft ).
66
74
Render (s .StatusHeader .Render ("Your Answers" ) +
67
- answer1 +
68
- answer2 +
69
- answer3 )
75
+ color +
76
+ formType +
77
+ flux +
78
+ inOrbit +
79
+ isExo )
70
80
}
71
81
72
82
errors := m .form .Errors ()
73
- header := m .appBoundaryView ("Charm Employment Application " )
83
+ header := m .appBoundaryView ("Exoplanet Game Quiz " )
74
84
if len (errors ) > 0 {
75
85
header = m .appErrorBoundaryView (m .errorView ())
76
86
}
@@ -83,47 +93,3 @@ func (m Model) viewFormPage() string {
83
93
84
94
return s .Base .Render (qrStyled + "\n " + header + "\n " + body + "\n \n " + footer )
85
95
}
86
-
87
- func FormField () Model {
88
- m := Model {width : maxWidth , state : stateFormPage }
89
- m .lg = lipgloss .DefaultRenderer ()
90
- m .styles = NewStyles (m .lg )
91
-
92
- m .form = huh .NewForm (
93
- huh .NewGroup (
94
- huh .NewInput ().
95
- Key ("answer1" ).
96
- Title ("What’s the paramater1" ).
97
- Prompt ("?" ).
98
- Value (& m .answer1 ),
99
-
100
- huh .NewInput ().
101
- Key ("answer2" ).
102
- Title ("What’s for lunch?" ).
103
- Prompt ("?" ).
104
- Value (& m .answer2 ),
105
-
106
- huh .NewInput ().
107
- Key ("answer3" ).
108
- Title ("What’s for lunch?" ).
109
- Prompt ("?" ).
110
- Value (& m .answer3 ),
111
-
112
- huh .NewConfirm ().
113
- Key ("done" ).
114
- Title ("All done?" ).
115
- Validate (func (v bool ) error {
116
- if ! v {
117
- return fmt .Errorf ("Welp, finish up then" )
118
- }
119
- return nil
120
- }).
121
- Affirmative ("Yep" ).
122
- Negative ("Wait, no" ),
123
- ),
124
- ).
125
- WithWidth (45 ).
126
- WithShowHelp (false ).
127
- WithShowErrors (false )
128
- return m
129
- }
0 commit comments