Skip to content

Commit

Permalink
add all server and update logic fitler and search
Browse files Browse the repository at this point in the history
  • Loading branch information
JustinBeBoy committed Jan 1, 2024
1 parent c2dc4ee commit c3bf8b6
Show file tree
Hide file tree
Showing 8 changed files with 44 additions and 16 deletions.
25 changes: 18 additions & 7 deletions libwallet/instantswap/instantswap.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,18 +127,28 @@ func (instantSwap *InstantSwap) NewExchangeServer(exchangeServer ExchangeServer)
// GetOrdersRaw fetches and returns all saved orders.
// If status is specified, only orders with that status will be returned.
// status is made optional to the sync functionality can update all orders.
func (instantSwap *InstantSwap) GetOrdersRaw(offset, limit int32, newestFirst bool, status ...instantswap.Status) ([]*Order, error) {
func (instantSwap *InstantSwap) GetOrdersRaw(offset, limit int32, newestFirst bool, server, txId string, status ...instantswap.Status) ([]*Order, error) {

Check warning on line 130 in libwallet/instantswap/instantswap.go

View workflow job for this annotation

GitHub Actions / Build

var-naming: method parameter txId should be txID (revive)
var query storm.Query
query = instantSwap.db.Select(
q.True(),
)
matchers := make([]q.Matcher, 0)

if len(status) > 0 {
query = instantSwap.db.Select(
q.Eq("Status", status[0]),
)
matchers = append(matchers, q.Eq("Status", status[0]))
}

if server != "" {
matchers = append(matchers, q.Eq("Server", server))
}

if txId != "" {
matchers = append(matchers, q.Eq("TxID", txId))
}

if len(matchers) == 0 {
matchers = append(matchers, q.True())
}

query = instantSwap.db.Select(matchers...)

if offset > 0 {
query = query.Skip(int(offset))
}
Expand Down Expand Up @@ -205,6 +215,7 @@ func (instantSwap *InstantSwap) CreateOrder(exchangeObject instantswap.IDExchang
order := &Order{
UUID: res.UUID,

Server: params.Server,
ExchangeServer: params.ExchangeServer,
SourceWalletID: params.SourceWalletID,
SourceAccountNumber: params.SourceAccountNumber,
Expand Down
2 changes: 1 addition & 1 deletion libwallet/instantswap/sync.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ func (instantSwap *InstantSwap) checkForUpdates(exchangeObject instantswap.IDExc
return instantSwap.ctx.Err()
}

orders, err := instantSwap.GetOrdersRaw(int32(offset), int32(limit), true)
orders, err := instantSwap.GetOrdersRaw(int32(offset), int32(limit), true, "", "")
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions ui/page/components/order_list.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,10 +151,10 @@ func LayoutNoOrderHistoryWithMsg(gtx C, l *load.Load, syncing bool, msg string)
})
}

func LoadOrders(l *load.Load, offset, limit int32, newestFirst bool, status ...api.Status) []*instantswap.Order {
func LoadOrders(l *load.Load, offset, limit int32, newestFirst bool, server, searchKey string, status ...api.Status) []*instantswap.Order {
var orders []*instantswap.Order

orders, err := l.AssetsManager.InstantSwap.GetOrdersRaw(offset, limit, newestFirst, status...)
orders, err := l.AssetsManager.InstantSwap.GetOrdersRaw(offset, limit, newestFirst, server, searchKey, status...)
if err != nil {
log.Error(err)
}
Expand Down
2 changes: 1 addition & 1 deletion ui/page/exchange/create_order_page.go
Original file line number Diff line number Diff line change
Expand Up @@ -1148,7 +1148,7 @@ func (pg *CreateOrderPage) orderSchedulerLayout(gtx C) D {
}

func (pg *CreateOrderPage) fetchOrders(offset, pageSize int32) ([]*instantswap.Order, int, bool, error) {
orders := components.LoadOrders(pg.Load, offset, pageSize, true)
orders := components.LoadOrders(pg.Load, offset, pageSize, true, "", "")
return orders, len(orders), false, nil
}

Expand Down
23 changes: 19 additions & 4 deletions ui/page/exchange/order_history_page.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ type OrderHistoryPage struct {
searchEditor cryptomaterial.Editor

exchangeServers []instantswap.ExchangeServer
selectedServer instantswap.ExchangeServer
selectedServer *instantswap.ExchangeServer

refreshClickable *cryptomaterial.Clickable
refreshIcon *cryptomaterial.Image
Expand Down Expand Up @@ -138,7 +138,11 @@ func (pg *OrderHistoryPage) HandleUserInteractions() {
}

if pg.serverDropdown != nil && pg.serverDropdown.Changed() {
pg.selectedServer = pg.exchangeServers[pg.serverDropdown.SelectedIndex()]
if pg.serverDropdown.SelectedIndex() == 0 {
pg.selectedServer = nil
} else {
pg.selectedServer = &pg.exchangeServers[pg.serverDropdown.SelectedIndex()-1]
}
}

if pg.serverDropdown.Changed() {
Expand Down Expand Up @@ -173,7 +177,10 @@ func (pg *OrderHistoryPage) HandleUserInteractions() {
func (pg *OrderHistoryPage) initServerSelector() {
pg.exchangeServers = pg.AssetsManager.InstantSwap.ExchangeServers()

items := []cryptomaterial.DropDownItem{}
items := []cryptomaterial.DropDownItem{{
// Icon: pg.Theme.Icons.WalletIcon,
Text: values.String(values.StrAllservers),
}}
for _, server := range pg.exchangeServers {
item := cryptomaterial.DropDownItem{
Text: server.Server.CapFirstLetter(),
Expand Down Expand Up @@ -391,14 +398,22 @@ func (pg *OrderHistoryPage) fetchOrders(offset, pageSize int32) ([]*instantswap.
statusFilter = api.OrderStatusUnknown
}

orderNewest := pg.orderDropdown.Selected() != values.String(values.StrOldest)
server := ""
if pg.selectedServer != nil {
server = string(pg.selectedServer.Server)
}

searchKey := pg.searchEditor.Editor.Text()

isReset := pg.previousStatus != statusFilter
if isReset {
// Since the status has changed we need to reset the offset.
offset = 0
pg.previousStatus = statusFilter
}

orders := components.LoadOrders(pg.Load, offset, pageSize, true, statusFilter)
orders := components.LoadOrders(pg.Load, offset, pageSize, orderNewest, server, searchKey, statusFilter)
return orders, len(orders), isReset, nil
}

Expand Down
2 changes: 1 addition & 1 deletion ui/page/root/overview_page.go
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ func (pg *OverviewPage) OnNavigatedTo() {
go pg.loadTransactions()

pg.proposalItems = components.LoadProposals(pg.Load, libwallet.ProposalCategoryAll, 0, 3, true, "")
pg.orders = components.LoadOrders(pg.Load, 0, 3, true)
pg.orders = components.LoadOrders(pg.Load, 0, 3, true, "", "")

if pg.AssetsManager.ExchangeRateFetchingEnabled() {
go pg.AssetsManager.RateSource.Refresh(false)
Expand Down
1 change: 1 addition & 0 deletions ui/values/localizable/en.go
Original file line number Diff line number Diff line change
Expand Up @@ -889,4 +889,5 @@ const EN = `
"regenerate" = "Regenerate"
"integratedExchange" = "Integrated Exchange"
"seedWords" = "Seed Words"
"allservers" = "All servers"
`
1 change: 1 addition & 0 deletions ui/values/strings.go
Original file line number Diff line number Diff line change
Expand Up @@ -998,4 +998,5 @@ const (
StrRegenerate = "regenerate"
StrIntegratedExchange = "integratedExchange"
StrSeedWords = "seedWords"
StrAllservers = "allservers"
)

0 comments on commit c3bf8b6

Please sign in to comment.