refactor: add methods to get focused object's ID
Created extra methods to get the IDs of the card or status in focus in order to reduce repeated code.
This commit is contained in:
parent
a632c57655
commit
e961bfc756
1 changed files with 38 additions and 20 deletions
|
@ -103,17 +103,14 @@ func (u *UI) init() error {
|
|||
}
|
||||
case letter == 'm':
|
||||
if u.mode == normal {
|
||||
focusedCard := u.columns[u.focusedColumn].focusedCard
|
||||
u.statusSelection.cardID = u.columns[u.focusedColumn].cards[focusedCard].id
|
||||
u.statusSelection.currentStatusID = u.columns[u.focusedColumn].statusID
|
||||
u.statusSelection.cardID = u.focusedCardID()
|
||||
u.statusSelection.currentStatusID = u.focusedStatusID()
|
||||
u.mode = selection
|
||||
}
|
||||
case letter == 'e':
|
||||
if u.mode == normal {
|
||||
u.cardModal.mode = edit
|
||||
focusedCard := u.columns[u.focusedColumn].focusedCard
|
||||
cardID := u.columns[u.focusedColumn].cards[focusedCard].id
|
||||
card, _ := u.board.Card(cardID)
|
||||
card, _ := u.getFocusedCard()
|
||||
u.cardModal.updateInputFields(card.Title, card.Description)
|
||||
u.cardModal.frame.SetTitle(" Edit Card ")
|
||||
u.pages.ShowPage(cardModalPage)
|
||||
|
@ -135,7 +132,7 @@ func (u *UI) init() error {
|
|||
}
|
||||
case key == tcell.KeyEnter:
|
||||
if u.mode == selection {
|
||||
u.statusSelection.nextStatusID = u.columns[u.focusedColumn].statusID
|
||||
u.statusSelection.nextStatusID = u.focusedStatusID()
|
||||
if u.statusSelection.currentStatusID != u.statusSelection.nextStatusID {
|
||||
u.statusSelection.moveCard(u.board)
|
||||
}
|
||||
|
@ -176,9 +173,7 @@ func (u *UI) initCardModal() {
|
|||
case create:
|
||||
_ = u.newCard(title, description)
|
||||
case edit:
|
||||
focusedCard := u.columns[u.focusedColumn].focusedCard
|
||||
cardID := u.columns[u.focusedColumn].cards[focusedCard].id
|
||||
_ = u.editCard(cardID, title, description)
|
||||
_ = u.editFocusedCard(title, description)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -193,7 +188,7 @@ func (u *UI) initCardModal() {
|
|||
func (u *UI) initDeleteCardModal() {
|
||||
doneFunc := func(_ int, buttonLabel string) {
|
||||
if buttonLabel == "Confirm" {
|
||||
u.deleteCard()
|
||||
u.deleteFocusedCard()
|
||||
_ = u.refresh(true)
|
||||
}
|
||||
|
||||
|
@ -239,8 +234,10 @@ func (u *UI) newCard(title, description string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// editCard saves and edited card to the database.
|
||||
func (u *UI) editCard(cardID int, title, description string) error {
|
||||
// editFocusedCard saves and edited card to the database.
|
||||
func (u *UI) editFocusedCard(title, description string) error {
|
||||
cardID := u.focusedCardID()
|
||||
|
||||
args := board.UpdateCardArgs{
|
||||
CardID: cardID,
|
||||
CardArgs: board.CardArgs{
|
||||
|
@ -258,15 +255,23 @@ func (u *UI) editCard(cardID int, title, description string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// deleteCard deletes a card from the board.
|
||||
func (u *UI) deleteCard() {
|
||||
statusID := u.columns[u.focusedColumn].statusID
|
||||
focusedCard := u.columns[u.focusedColumn].focusedCard
|
||||
cardID := u.columns[u.focusedColumn].cards[focusedCard].id
|
||||
// getFocusedCard retrieves the details of the focused card.
|
||||
func (u *UI) getFocusedCard() (board.Card, error) {
|
||||
cardID := u.focusedCardID()
|
||||
|
||||
card, err := u.board.Card(cardID)
|
||||
if err != nil {
|
||||
return board.Card{}, fmt.Errorf("unable to retrieve the card with card ID %d, %w", cardID, err)
|
||||
}
|
||||
|
||||
return card, nil
|
||||
}
|
||||
|
||||
// deleteFocusedCard deletes the focused card from the board.
|
||||
func (u *UI) deleteFocusedCard() {
|
||||
args := board.DeleteCardArgs{
|
||||
CardID: cardID,
|
||||
StatusID: statusID,
|
||||
CardID: u.focusedCardID(),
|
||||
StatusID: u.focusedStatusID(),
|
||||
}
|
||||
|
||||
_ = u.board.DeleteCard(args)
|
||||
|
@ -362,3 +367,16 @@ func (u *UI) shutdown() {
|
|||
func (u *UI) boardMode() boardMode {
|
||||
return u.mode
|
||||
}
|
||||
|
||||
// focusedCardID returns the ID of the card in focus.
|
||||
func (u *UI) focusedCardID() int {
|
||||
focusedCard := u.columns[u.focusedColumn].focusedCard
|
||||
id := u.columns[u.focusedColumn].cards[focusedCard].id
|
||||
|
||||
return id
|
||||
}
|
||||
|
||||
// focusedStatusID returns the ID of thestatus (column) in focus.
|
||||
func (u *UI) focusedStatusID() int {
|
||||
return u.columns[u.focusedColumn].statusID
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue