Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
beasy-mobile
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
4
Issues
4
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
G
beasy-mobile
Commits
dfdb5556
Commit
dfdb5556
authored
Sep 06, 2025
by
G
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: Transaction history screen with filters and performant scrollView using Flashlist.
parent
28d87f82
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
67 additions
and
0 deletions
+67
-0
api.ts
src/features/pay/api.ts
+5
-0
TransactionItem.tsx
src/features/pay/components/TransactionItem.tsx
+46
-0
types.ts
src/features/pay/types.ts
+16
-0
TransactionHistoryScreen.tsx
src/screens/TransactionHistoryScreen.tsx
+0
-0
No files found.
src/features/pay/api.ts
View file @
dfdb5556
...
@@ -5,6 +5,7 @@ import type {
...
@@ -5,6 +5,7 @@ import type {
OmInitializationPayload
as
OmTransactionInitializationPayload
,
OmInitializationPayload
as
OmTransactionInitializationPayload
,
OmInitializationResponse
as
OmTransactionInitializationResponse
,
OmInitializationResponse
as
OmTransactionInitializationResponse
,
PaymentType
,
PaymentType
,
Transaction
,
WaveInitializationPayload
,
WaveInitializationPayload
,
WaveTransactionInitilizationResponse
,
WaveTransactionInitilizationResponse
,
}
from
"./types"
;
}
from
"./types"
;
...
@@ -54,3 +55,7 @@ export const waveInitializeTransaction = (payload: WaveInitializationPayload) =>
...
@@ -54,3 +55,7 @@ export const waveInitializeTransaction = (payload: WaveInitializationPayload) =>
export
const
waveGetTransactionStatus
=
(
id
:
string
)
=>
{
export
const
waveGetTransactionStatus
=
(
id
:
string
)
=>
{
return
axiosInstance
.
get
<
WaveTransactionInitilizationResponse
>
(
`/wave-session/
${
id
}
/`
);
return
axiosInstance
.
get
<
WaveTransactionInitilizationResponse
>
(
`/wave-session/
${
id
}
/`
);
};
};
export
const
getTransactions
=
()
=>
{
return
axiosInstance
.
get
<
DjangoPaginated
<
Transaction
[]
>>
(
"/transactions/"
);
};
src/features/pay/components/TransactionItem.tsx
0 → 100644
View file @
dfdb5556
import
moment
from
"moment"
;
import
"moment/locale/fr"
;
import
{
asp
as
g
}
from
"@asp/asp"
;
import
type
{
FC
}
from
"react"
;
import
{
Text
,
View
}
from
"react-native"
;
import
type
{
Transaction
}
from
"../types"
;
import
PaymentType
from
"./PaymentType"
;
moment
.
locale
(
"fr"
);
export
const
TransactionItem
:
FC
<
{
transaction
:
Transaction
}
>
=
({
transaction
})
=>
{
const
{
type_paiement_label
,
reference
,
date
,
montant
,
status
}
=
transaction
;
const
dateObject
=
Date
.
parse
(
date
);
const
color
=
status
===
"SUCCESS"
?
"green"
:
status
===
"INITIATED"
?
"orange"
:
"red"
;
return
(
<
View
style=
{
[
g
.
w_full
,
g
.
p_sm
,
g
.
flex_row
,
g
.
gap_sm
,
g
.
rounded_sm
,
g
.
shadow_elevated
,
g
.
justify_between
,
{
backgroundColor
:
"white"
},
]
}
>
<
View
style=
{
[
g
.
flex_row
,
g
.
flex_1
,
g
.
gap_sm
]
}
>
<
View
style=
{
[
g
.
rounded_md
,
g
.
overflow_hidden
,
{
height
:
50
,
width
:
50
}]
}
>
<
PaymentType
style=
{
{
height
:
"100%"
,
aspectRatio
:
1
}
}
type=
{
type_paiement_label
}
/>
</
View
>
<
View
style=
{
[
g
.
flex_1
,
{
height
:
50
}]
}
>
<
Text
>
{
reference
}
</
Text
>
<
Text
>
{
moment
(
dateObject
).
fromNow
()
}
</
Text
>
</
View
>
</
View
>
<
View
style=
{
{
height
:
50
}
}
>
<
Text
style=
{
{
color
:
color
}
}
>
{
montant
}
</
Text
>
</
View
>
</
View
>
);
};
src/features/pay/types.ts
View file @
dfdb5556
...
@@ -89,3 +89,19 @@ export interface WaveTransactionInitilizationResponse {
...
@@ -89,3 +89,19 @@ export interface WaveTransactionInitilizationResponse {
when_created
:
string
;
when_created
:
string
;
when_expires
:
string
;
when_expires
:
string
;
}
}
export
type
Transaction
=
{
type_paiement
:
number
;
type_paiement_label
:
PaymentTypeCode
;
marchand
:
string
;
marchand_name
:
string
;
service
:
string
;
montant
:
number
;
date
:
string
;
commentaire
:
string
;
etat
:
boolean
;
status
:
"SUCCESS"
|
"INITIATED"
|
"FAILED"
;
reference
:
string
;
transaction_id
:
number
;
marchand_code
:
string
;
};
src/screens/TransactionHistoryScreen.tsx
View file @
dfdb5556
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment