Skip to content

Commit

Permalink
feat: add option to edit name, url, headers and body
Browse files Browse the repository at this point in the history
  • Loading branch information
NathanFirmo committed Nov 22, 2023
1 parent a34a2d3 commit c5472f3
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 36 deletions.
46 changes: 32 additions & 14 deletions internal/components/request.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,50 @@ import (
)

type RequestComponent struct {
Container *tview.Flex
OptionsComponent *tview.TextArea
UrlInputComponent *tview.InputField
Container *tview.Flex
UrlComponent *tview.InputField
NameComponent *tview.InputField
HeadersComponent *tview.TextArea
BodyComponent *tview.TextArea
}

// Create a flex container with row alignment to put request option components
func CreateRequest() *RequestComponent {
ct := tview.NewFlex()
ct.SetDirection(tview.FlexRow).SetBorder(true).SetTitle("Request")

reqOpt := tview.NewTextArea()
reqOpt.SetBorder(true)
reqOpt.SetText("", true)
name := tview.NewInputField()
name.SetBorder(true)
name.SetTitle("Name")
name.SetFieldTextColor(tcell.Color(tcell.Color.Hex(0)))

reqUrlInput := tview.NewInputField()
reqUrlInput.SetBorder(true)
reqUrlInput.SetFieldTextColor(tcell.Color(tcell.Color.Hex(0)))
url := tview.NewInputField()
url.SetBorder(true)
url.SetTitle("URL")
url.SetFieldTextColor(tcell.Color(tcell.Color.Hex(0)))

headers := tview.NewTextArea()
headers.SetBorder(true)
headers.SetTitle("Headers")
headers.SetText("", true)

body := tview.NewTextArea()
body.SetBorder(true)
body.SetTitle("Body")
body.SetText("", true)

// Add requests component on its container
ct.
AddItem(reqUrlInput, 0, 1, false).
AddItem(reqOpt, 0, 9, false)
AddItem(name, 0, 1, false).
AddItem(url, 0, 1, false).
AddItem(headers, 0, 4, false).
AddItem(body, 0, 4, false)

return &RequestComponent{
Container: ct,
OptionsComponent: reqOpt,
UrlInputComponent: reqUrlInput,
Container: ct,
HeadersComponent: headers,
BodyComponent: body,
UrlComponent: url,
NameComponent: name,
}
}
9 changes: 0 additions & 9 deletions internal/components/root.go

This file was deleted.

45 changes: 32 additions & 13 deletions internal/gorest/input-handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,30 +14,42 @@ func (a *App) SetInputHandlers() {
switch event.Key() {
case tcell.KeyCtrlL:
if focus == a.requestsList.Component || focus == a.requestsList.Container {
a.tview.SetFocus(a.request.UrlInputComponent)
} else if focus == a.request.UrlInputComponent || focus == a.request.OptionsComponent {
a.tview.SetFocus(a.request.NameComponent)
} else {
a.tview.SetFocus(a.response.Container)
}
return event
case tcell.KeyCtrlH:
if focus == a.response.Container {
a.tview.SetFocus(a.request.UrlInputComponent)
} else if focus == a.request.UrlInputComponent || focus == a.request.OptionsComponent {
a.tview.SetFocus(a.request.NameComponent)
} else {
a.tview.SetFocus(a.requestsList.Component)
}
return event
case tcell.KeyCtrlJ:
if focus == a.request.UrlInputComponent {
a.tview.SetFocus(a.request.OptionsComponent)
if focus == a.request.NameComponent {
a.tview.SetFocus(a.request.UrlComponent)
}
if focus == a.request.UrlComponent {
a.tview.SetFocus(a.request.HeadersComponent)
}
if focus == a.request.HeadersComponent {
a.tview.SetFocus(a.request.BodyComponent)
}
return event
case tcell.KeyCtrlK:
if focus == a.request.OptionsComponent {
a.tview.SetFocus(a.request.UrlInputComponent)
if focus == a.request.BodyComponent {
a.tview.SetFocus(a.request.HeadersComponent)
}
if focus == a.request.HeadersComponent {
a.tview.SetFocus(a.request.UrlComponent)
}
if focus == a.request.UrlComponent {
a.tview.SetFocus(a.request.NameComponent)
}
return event
case tcell.KeyEnter:
url := a.request.UrlInputComponent.GetText()
url := a.request.UrlComponent.GetText()
res, _ := utils.MakeRequest(url)
a.response.Component.SetText(string(res))
case tcell.KeyCtrlN:
Expand All @@ -49,17 +61,24 @@ func (a *App) SetInputHandlers() {
Headers: "",
Body: "",
}, func() {
_, url := a.requestsList.Component.GetItemText(length)
a.request.UrlInputComponent.SetText(url)
a.tview.SetFocus(a.request.UrlInputComponent)
name, url := a.requestsList.Component.GetItemText(length)
a.request.UrlComponent.SetText(url)
a.request.NameComponent.SetText(name)
a.tview.SetFocus(a.request.NameComponent)
})
a.requestsList.Component.SetCurrentItem(length)
}

return event
})

a.request.UrlInputComponent.SetChangedFunc(func(url string) {
a.request.NameComponent.SetChangedFunc(func(name string) {
index := a.requestsList.Component.GetCurrentItem()
_, url := a.requestsList.Component.GetItemText(index)
a.requestsList.Component.SetItemText(index, name, url)
})

a.request.UrlComponent.SetChangedFunc(func(url string) {
index := a.requestsList.Component.GetCurrentItem()
main, _ := a.requestsList.Component.GetItemText(index)
a.requestsList.Component.SetItemText(index, main, url)
Expand Down

0 comments on commit c5472f3

Please sign in to comment.