mirror of
https://github.com/openziti/zrok.git
synced 2025-06-19 08:17:05 +02:00
tui elaboration (#56)
This commit is contained in:
parent
73d124da83
commit
d984cbf832
@ -25,10 +25,12 @@ type shareRequestModel struct {
|
|||||||
path string
|
path string
|
||||||
}
|
}
|
||||||
|
|
||||||
func newShareModel(shareToken string, frontendEndpoints []string) *shareModel {
|
func newShareModel(shareToken string, frontendEndpoints []string, shareMode, backendMode string) *shareModel {
|
||||||
return &shareModel{
|
return &shareModel{
|
||||||
shareToken: shareToken,
|
shareToken: shareToken,
|
||||||
frontendEndpoints: frontendEndpoints,
|
frontendEndpoints: frontendEndpoints,
|
||||||
|
shareMode: shareMode,
|
||||||
|
backendMode: backendMode,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,14 +40,18 @@ func (m *shareModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||||||
switch msg := msg.(type) {
|
switch msg := msg.(type) {
|
||||||
case tea.WindowSizeMsg:
|
case tea.WindowSizeMsg:
|
||||||
m.width = msg.Width
|
m.width = msg.Width
|
||||||
shareHeaderStyle.Width((m.width - 4) / 2)
|
shareHeaderStyle.Width(m.width - 30)
|
||||||
|
configHeaderStyle.Width(26)
|
||||||
m.height = msg.Height
|
m.height = msg.Height
|
||||||
requestsStyle.Width(m.width - 2)
|
requestsStyle.Width(m.width - 2)
|
||||||
requestsStyle.Height(20)
|
requestsStyle.Height(m.height - (len(m.frontendEndpoints) + 6))
|
||||||
|
|
||||||
case tea.KeyMsg:
|
case tea.KeyMsg:
|
||||||
switch msg.String() {
|
switch msg.String() {
|
||||||
case "ctrl+c", "q":
|
case "ctrl+c", "q":
|
||||||
return m, tea.Quit
|
return m, tea.Quit
|
||||||
|
case "ctrl+l":
|
||||||
|
return m, tea.ClearScreen
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,13 +61,30 @@ func (m *shareModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||||||
func (m *shareModel) View() string {
|
func (m *shareModel) View() string {
|
||||||
topRow := lipgloss.JoinHorizontal(lipgloss.Top,
|
topRow := lipgloss.JoinHorizontal(lipgloss.Top,
|
||||||
shareHeaderStyle.Render(strings.Join(m.frontendEndpoints, "\n")),
|
shareHeaderStyle.Render(strings.Join(m.frontendEndpoints, "\n")),
|
||||||
shareHeaderStyle.Render(m.shareToken),
|
configHeaderStyle.Render(m.renderConfig()),
|
||||||
)
|
)
|
||||||
requests := requestsStyle.Render("hello")
|
requests := requestsStyle.Render("hello")
|
||||||
all := lipgloss.JoinVertical(lipgloss.Left, topRow, requests)
|
all := lipgloss.JoinVertical(lipgloss.Left, topRow, requests)
|
||||||
return all
|
return all
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *shareModel) renderConfig() string {
|
||||||
|
out := "["
|
||||||
|
if m.shareMode == "public" {
|
||||||
|
out += shareModePublicStyle.Render(strings.ToUpper(m.shareMode))
|
||||||
|
} else {
|
||||||
|
out += shareModePrivateStyle.Render(strings.ToUpper(m.shareMode))
|
||||||
|
}
|
||||||
|
out += "] ["
|
||||||
|
if m.backendMode == "proxy" {
|
||||||
|
out += backendModeProxyStyle.Render(strings.ToUpper(m.backendMode))
|
||||||
|
} else {
|
||||||
|
out += backendModeWebStyle.Render(strings.ToUpper(m.backendMode))
|
||||||
|
}
|
||||||
|
out += "]"
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
var shareHeaderStyle = lipgloss.NewStyle().
|
var shareHeaderStyle = lipgloss.NewStyle().
|
||||||
Height(3).
|
Height(3).
|
||||||
PaddingTop(1).PaddingLeft(2).PaddingBottom(1).PaddingRight(2).
|
PaddingTop(1).PaddingLeft(2).PaddingBottom(1).PaddingRight(2).
|
||||||
@ -69,8 +92,20 @@ var shareHeaderStyle = lipgloss.NewStyle().
|
|||||||
BorderForeground(lipgloss.Color("63")).
|
BorderForeground(lipgloss.Color("63")).
|
||||||
Align(lipgloss.Center)
|
Align(lipgloss.Center)
|
||||||
|
|
||||||
|
var configHeaderStyle = lipgloss.NewStyle().
|
||||||
|
Height(3).
|
||||||
|
PaddingTop(1).PaddingLeft(2).PaddingBottom(1).PaddingRight(2).
|
||||||
|
BorderStyle(lipgloss.RoundedBorder()).
|
||||||
|
BorderForeground(lipgloss.Color("63")).
|
||||||
|
Align(lipgloss.Center)
|
||||||
|
|
||||||
var requestsStyle = lipgloss.NewStyle().
|
var requestsStyle = lipgloss.NewStyle().
|
||||||
Height(3).
|
Height(3).
|
||||||
PaddingTop(1).PaddingLeft(2).PaddingBottom(1).PaddingRight(2).
|
PaddingTop(1).PaddingLeft(2).PaddingBottom(1).PaddingRight(2).
|
||||||
BorderStyle(lipgloss.RoundedBorder()).
|
BorderStyle(lipgloss.RoundedBorder()).
|
||||||
BorderForeground(lipgloss.Color("63"))
|
BorderForeground(lipgloss.Color("63"))
|
||||||
|
|
||||||
|
var shareModePublicStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#0F0"))
|
||||||
|
var shareModePrivateStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#F00"))
|
||||||
|
var backendModeProxyStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#FFA500"))
|
||||||
|
var backendModeWebStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#0CC"))
|
||||||
|
@ -181,7 +181,7 @@ func (cmd *sharePublicCommand) run(_ *cobra.Command, args []string) {
|
|||||||
bh.Requests()()
|
bh.Requests()()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
prg := tea.NewProgram(newShareModel(resp.Payload.ShrToken, resp.Payload.FrontendProxyEndpoints), tea.WithAltScreen())
|
prg := tea.NewProgram(newShareModel(resp.Payload.ShrToken, resp.Payload.FrontendProxyEndpoints, "public", cmd.backendMode), tea.WithAltScreen())
|
||||||
if _, err := prg.Run(); err != nil {
|
if _, err := prg.Run(); err != nil {
|
||||||
tui.Error("An error occurred", err)
|
tui.Error("An error occurred", err)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user