Skip to content

Commit 442d7cf

Browse files
authored
Merge pull request #657 from makerspace/emaus/140-refund-labaccess
Fix 140: refund labaccess
2 parents ad6b338 + 76f89fc commit 442d7cf

39 files changed

+475
-284
lines changed

admin/dist/css/default.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,3 +380,7 @@ button > svg {
380380
flex-shrink: 0;
381381
}
382382
}
383+
384+
.removebutton {
385+
color: #a00000;
386+
}

admin/package-lock.json

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

admin/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
"@types/react-dom": "^18.0.0",
4545
"@types/react-router": "^5.1.13",
4646
"@types/react-router-dom": "^5.1.7",
47+
"@types/uikit": "^3.14.5",
4748
"@types/underscore": "^1.11.1",
4849
"babel-core": "^7.0.0-0",
4950
"babel-jest": "^29.7.0",

admin/src/Components/KeyHandoutForm.jsx

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React, { useEffect, useMemo, useRef, useState } from "react";
2-
import { renderToString } from "react-dom/server";
32
import { Prompt } from "react-router";
43
import UIkit from "uikit";
54
import { get, post } from "../gateway";
@@ -89,21 +88,19 @@ function DateView(props) {
8988
function MembershipAgreementSign({ member, has_signed }) {
9089
function prompt_lab_contract_not_signed() {
9190
return UIkit.modal.confirm(
92-
renderToString(
93-
<div>
94-
<p>
95-
Är du säker på {member.firstname} {member.lastname} inte
96-
har skrivit på ett labbavtal?
97-
</p>
98-
<p>
99-
Labbavtalet mottogs{" "}
100-
<strong>
101-
{dateTimeToStr(member.labaccess_agreement_at)}
102-
</strong>
103-
.{" "}
104-
</p>
105-
</div>,
106-
),
91+
<div>
92+
<p>
93+
Är du säker på {member.firstname} {member.lastname} inte har
94+
skrivit på ett labbavtal?
95+
</p>
96+
<p>
97+
Labbavtalet mottogs{" "}
98+
<strong>
99+
{dateTimeToStr(member.labaccess_agreement_at)}
100+
</strong>
101+
.{" "}
102+
</p>
103+
</div>,
107104
);
108105
}
109106

admin/src/Hooks/useMember.tsx

Lines changed: 0 additions & 19 deletions
This file was deleted.

admin/src/Hooks/useModel.tsx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import Base from "Models/Base";
2+
import { useEffect, useMemo, useState } from "react";
3+
4+
export default function useModel<M extends Base<M>>(
5+
model: { new (): M; get(id: number): any }, // This is an attempt to derive the Model's type from the argument
6+
id: number,
7+
): M {
8+
const instance = useMemo(() => model.get(id) as M, [model, id]);
9+
const [version, setVersion] = useState(0); // Dummy state to force re-render
10+
11+
useEffect(() => {
12+
const unsubscribe = instance.subscribe(() => {
13+
setVersion((v) => v + 1);
14+
});
15+
16+
return () => {
17+
unsubscribe();
18+
};
19+
}, [id]);
20+
21+
return instance;
22+
}

admin/src/Membership/MemberBox.jsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
11
import PropTypes from "prop-types";
22
import React, { createContext } from "react";
33
import { useParams } from "react-router";
4-
import useMember from "../Hooks/useMember";
4+
import useModel from "../Hooks/useModel";
5+
import Member from "../Models/Member";
56
import { NavItem } from "../nav";
67

78
export const MemberContext = createContext(null);
89

910
function MemberBox({ children }) {
1011
const { member_id } = useParams();
11-
const member = useMember(member_id);
12+
const member = useModel(Member, member_id);
1213

1314
return (
1415
<MemberContext.Provider value={member}>
1516
<div>
16-
<h2>
17-
Medlem #{member.member_number}: {member.firstname}{" "}
18-
{member.lastname}
19-
</h2>
17+
<h2>Medlem {member.toString()}</h2>
2018

2119
<ul className="uk-tab">
2220
<NavItem

admin/src/Membership/MemberBoxSpans.jsx

Lines changed: 0 additions & 121 deletions
This file was deleted.

0 commit comments

Comments
 (0)