• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

atlp-rwanda / knights-ecomm-fe / 10060387859

23 Jul 2024 10:55AM UTC coverage: 90.757% (+0.09%) from 90.671%
10060387859

push

github

web-flow
Merge pull request #73 from atlp-rwanda/ft-order-management

#68 Implement vendor and admin order management feature

1079 of 1360 branches covered (79.34%)

Branch coverage included in aggregate %.

1519 of 1727 new or added lines in 21 files covered. (87.96%)

3 existing lines in 2 files now uncovered.

11332 of 12315 relevant lines covered (92.02%)

12.17 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

90.43
/src/components/Order/DashboardOrderManagement/HeaderOrderManagement.tsx
1
import React from 'react';
1✔
2
import DashboardOrderStatus from './DashboardOrderStatus';
1✔
3
import { Link, useParams } from 'react-router-dom';
1✔
4
import { DecodedToken } from '../../../pages/Authentication/Login';
1✔
5
import { RootState } from '../../../redux/store';
1✔
6
import { useSelector } from 'react-redux';
1✔
7
import { useJwt } from 'react-jwt';
1✔
8
import { numFormat } from '../../../utils/numberFormat';
1✔
9

1✔
10
interface Prop {
1✔
11
  orderTimeIdentifier?: string;
1✔
12
}
1✔
13
const HeaderOrderManagement = (props: Prop) => {
1✔
14
  const { totalOrder, pendingOrder, completed, cancelled } = useSelector((state: RootState) => state.orderStats);
69✔
15
  const { userToken } = useSelector((state: RootState) => state.auth);
69✔
16
  const { decodedToken } = useJwt<DecodedToken>(userToken);
69✔
17

69✔
18
  const params = useParams();
69✔
19

69✔
20
  return (
69✔
21
    <div className="flex flex-col gap-y-4 md:gap-y-6 lg:gap-y-8">
69✔
22
      <div>
69✔
23
        <h1 className="font-bold text-base xmd:text-lg lg:text-xl leading-5">All Orders</h1>
69✔
24
        <nav className="flex gap-x-1 items-center text-neutral-600 text-[.75rem] lg:text-sm">
69✔
25
          <span className="cursor-pointer hover:font-medium hover:text-black">
69✔
26
            <Link to={'/' + decodedToken?.role.toLowerCase() + '/dashboard'}>Home</Link>
69✔
27
          </span>
69✔
28
          <span>{'>'}</span>
69!
29
          <span className={params.orderId && 'cursor-pointer hover:font-medium hover:text-black'}>
69✔
30
            {params.orderId ? (
69✔
31
              <Link to={'/' + decodedToken?.role.toLowerCase() + '/dashboard/orders'}>Order</Link>
69!
32
            ) : (
69!
NEW
33
              'Order'
×
34
            )}
69✔
35
          </span>
69✔
36
          {props.orderTimeIdentifier && params.orderId && (
69✔
37
            <>
69✔
38
              {' '}
69✔
NEW
39
              <span>{'>'}</span>
×
NEW
40
              <span>#Order-{props.orderTimeIdentifier}</span>
×
NEW
41
            </>
×
NEW
42
          )}
×
NEW
43
        </nav>
×
44
      </div>
69✔
45
      <div className="flex justify-between sm:text-red gap-2 xmd:gap-5 lg:gap-10 text-[.9rem] xmd:text-[.95rem]">
69✔
46
        <div className="flex flex-col items-center justify-center rounded-lg bg-primary w-full py-4 xmd:py-5 lg:py-7 text-white">
69✔
47
          <div className="flex flex-col gap-y-2 md:gap-y-4 lg:gap-y-6 justify-center px-2">
69✔
48
            <h2 className="font-semibold tracking-tight xmd:tracking-normal">Total Orders</h2>
69✔
49
            <div className="flex items-center gap-x-1 xmd:gap-x-2">
69✔
50
              <p className="text-nowrap text-[1.8rem] xmd:text-[2.8rem] lg:text-[3.5rem] leading-9 font-sans font-medium py-1 lg:py-2 pr-1 md:pr-3 lg:pr-5 border-r-2 tracking-tighter xmd:tracking-normal">
69✔
51
                {numFormat(totalOrder)}
69✔
52
              </p>
69✔
53
              <div className="text-[.66rem] sm:text-[.75rem] lg:text-[.8rem] ">
69✔
54
                <div className="flex gap-x-1 xmd:gap-x-3 lg:gap-x-4 font-medium pb-1 tracking-tight xmd:tracking-normal">
69✔
55
                  <span className="tracking-tighter xmd:tracking-normal font-sans">[{numFormat(completed)}]</span>
69✔
56
                  <DashboardOrderStatus status="completed" />
69✔
57
                </div>
69✔
58
                <div className="flex gap-x-1 xmd:gap-x-3 lg:gap-x-4 font-medium pb-1 tracking-tight xmd:tracking-normal">
69✔
59
                  <span className="tracking-tighter xmd:tracking-normal font-sans">[{numFormat(cancelled)}]</span>
69✔
60
                  <DashboardOrderStatus status="cancelled" />
69✔
61
                </div>
69✔
62
              </div>
69✔
63
            </div>
69✔
64
          </div>
69✔
65
        </div>
69✔
66
        <div className="flex flex-col items-center justify-center rounded-lg bg-white border-2 border-neutral-200 w-full md:py-4 lg:py-7 px-1">
69✔
67
          <div className="flex flex-col gap-y-2 md:gap-y-4 lg:gap-y-6 items-center justify-center">
69✔
68
            <h2 className="font-semibold tracking-tight xmd:tracking-normal leading-4">Pending Orders</h2>
69✔
69
            <p className="text-[1.8rem] xmd:text-[2.8rem] lg:text-[3.5rem] font-sans leading-9 font-medium py-1 lg:py-2  tracking-tighter xmd:tracking-normal">
69✔
70
              {numFormat(pendingOrder)}
69✔
71
            </p>
69✔
72
          </div>
69✔
73
        </div>
69✔
74
      </div>
69✔
75
    </div>
69✔
76
  );
69✔
77
};
69✔
78

69✔
79
export default HeaderOrderManagement;
69✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc