diff --git a/src/model/Deal.js b/src/model/Deal.js
index 82d4d39e..7561a058 100644
--- a/src/model/Deal.js
+++ b/src/model/Deal.js
@@ -1,3 +1,14 @@
+export const DealState = {
+ Created: 0,
+ Accepted: 1,
+ Funded: 2,
+ Paid: 3,
+ Disputed: 4,
+ Cancelled: 5,
+ Resolved: 6,
+ Released: 7,
+}
+
export default class Deal {
constructor(contract) {
this.contract = contract
@@ -32,7 +43,7 @@ export default class Deal {
this.taker = taker
this.tokenAmount = Number(tokenAmount)
this.fiatAmount = Number(fiatAmount) / 10 ** 6 // FIXME test with large input
- this.state = Number(state) // FIXME constants
+ this.state = Number(state)
this.paymentInstructions = paymentInstructions
this.allowCancelUnacceptedAfter = new Date(Number(allowCancelUnacceptedAfter) * 1000)
this.allowCancelUnpaidAfter = new Date(Number(allowCancelUnpaidAfter) * 1000)
diff --git a/src/pages/Me/UserDeals.test.tsx b/src/pages/Me/UserDeals.test.tsx
index a168ba32..fd2e6f11 100644
--- a/src/pages/Me/UserDeals.test.tsx
+++ b/src/pages/Me/UserDeals.test.tsx
@@ -17,6 +17,16 @@ vi.mock('@/hooks/useContract', () => ({
// Mock models
vi.mock('@/model/Deal.js', () => {
return {
+ DealState: {
+ Created: 0,
+ Accepted: 1,
+ Funded: 2,
+ Paid: 3,
+ Disputed: 4,
+ Cancelled: 5,
+ Resolved: 6,
+ Released: 7,
+ },
default: class Deal {
// mocked constructor
constructor(c) {
diff --git a/src/pages/Me/UserDeals.tsx b/src/pages/Me/UserDeals.tsx
index c8139a1f..0a56651e 100644
--- a/src/pages/Me/UserDeals.tsx
+++ b/src/pages/Me/UserDeals.tsx
@@ -1,14 +1,23 @@
import { Link } from 'react-router-dom'
import { Empty, List, Skeleton, Tag } from 'antd'
import React, { useEffect, useState } from 'react'
-import Deal from '@/model/Deal.js'
+import Deal, { DealState } from '@/model/Deal.js'
import { useAccount } from 'wagmi'
import { useContract } from '@/hooks/useContract'
import Offer from '@/model/Offer.js'
-function StateTag(args) {
- const index = ['Initiated', 'Accepted', 'Funded', 'Paid', 'Disputed', 'Canceled', 'Resolved', 'Completed']
- return {index[args.state]}
+function StateTag({ state }: { state: number }) {
+ const stateNames = {
+ [DealState.Created]: 'Initiated',
+ [DealState.Accepted]: 'Accepted',
+ [DealState.Funded]: 'Funded',
+ [DealState.Paid]: 'Paid',
+ [DealState.Disputed]: 'Disputed',
+ [DealState.Cancelled]: 'Canceled',
+ [DealState.Resolved]: 'Resolved',
+ [DealState.Released]: 'Completed',
+ }
+ return {stateNames[state]}
}
function DealItem({ deal }) {