diff --git a/.gitignore b/.gitignore
index 20081512..99f02daa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -167,3 +167,5 @@ cython_debug/
/.envrc
/secrets
/cron/
+/.vscode
+/.DS_STORE
\ No newline at end of file
diff --git a/frontend/.gitignore b/frontend/.gitignore
index b9bf98b5..d24a0dbd 100644
--- a/frontend/.gitignore
+++ b/frontend/.gitignore
@@ -1,2 +1,3 @@
node_modules/
static/bundle.js
+/.DS_STORE
diff --git a/frontend/src/components/RazorpayPayment.js b/frontend/src/components/RazorpayPayment.js
index 8b0c61dd..660c1e78 100644
--- a/frontend/src/components/RazorpayPayment.js
+++ b/frontend/src/components/RazorpayPayment.js
@@ -14,6 +14,11 @@ const RazorpayPayment = props => {
props.setStatus(
"Razorpay SDK failed to load. please check are you online?"
);
+ if (props.failureCallback) {
+ props.failureCallback(
+ "Razorpay SDK failed to load. please check are you online?"
+ );
+ }
}
});
@@ -24,7 +29,9 @@ const RazorpayPayment = props => {
const event_id = props.event?.id;
const team_id = props.team?.id;
const data = team_id
- ? { team_id, event_id } // Team Registration
+ ? player_ids
+ ? { team_id, event_id, player_ids } // Player Registration
+ : { team_id, event_id } // Team Registration
: props.annual
? player_ids
? { player_ids, season_id } // Group Membership
@@ -70,11 +77,11 @@ const RazorpayPayment = props => {
);
} else {
- if (response.status === 422) {
+ if (response.status >= 400 && response.status < 500) {
const error = await response.json();
props.setStatus(`Error: ${error.message}`);
if (props.failureCallback) {
- props.failureCallback(`Error: ${error.message}`);
+ props.failureCallback(error.message);
}
} else {
const body = await response.text();
@@ -83,7 +90,7 @@ const RazorpayPayment = props => {
);
if (props.failureCallback) {
props.failureCallback(
- `Error: ${response.statusText} (${response.status}) — ${body}`
+ `${response.statusText} (${response.status}) — ${body}`
);
}
}
@@ -97,7 +104,7 @@ const RazorpayPayment = props => {
);
if (props.failureCallback) {
props.failureCallback(
- `Error: ${response.error.code}: ${response.error.description}`
+ `${response.error.code}: ${response.error.description}`
);
}
});
@@ -105,11 +112,11 @@ const RazorpayPayment = props => {
// window.location = data.redirect_url;
} else {
- if (response.status === 422) {
+ if (response.status >= 400 && response.status < 500) {
const error = await response.json();
props.setStatus(`Error: ${error.message}`);
if (props.failureCallback) {
- props.failureCallback(`Error: ${error.message}`);
+ props.failureCallback(`${error.message}`);
}
} else {
const body = await response.text();
@@ -118,7 +125,7 @@ const RazorpayPayment = props => {
);
if (props.failureCallback) {
props.failureCallback(
- `Error: ${response.statusText} (${response.status}) — ${body}`
+ `${response.statusText} (${response.status}) — ${body}`
);
}
}
@@ -129,7 +136,7 @@ const RazorpayPayment = props => {
setLoading(false);
props.setStatus(`Error: ${error}`);
if (props.failureCallback) {
- props.failureCallback(`Error: ${error}`);
+ props.failureCallback(`${error}`);
}
});
};
diff --git a/frontend/src/components/roster/AddToRoster.js b/frontend/src/components/roster/AddToRoster.js
index eb61f263..275685ed 100644
--- a/frontend/src/components/roster/AddToRoster.js
+++ b/frontend/src/components/roster/AddToRoster.js
@@ -11,35 +11,29 @@ import {
} from "@tanstack/solid-table";
import clsx from "clsx";
import { Icon } from "solid-heroicons";
-import { handRaised } from "solid-heroicons/outline";
-import {
- arrowRight,
- checkCircle,
- plus,
- xCircle,
- xMark
-} from "solid-heroicons/solid";
+import { arrowRight, checkCircle, xCircle, xMark } from "solid-heroicons/solid";
import { createEffect, createSignal, For, Show } from "solid-js";
import { ChevronLeft, ChevronRight, Spinner } from "../../icons";
-import {
- addToRoster,
- fetchUser,
- searchSeriesRosterPlayers
-} from "../../queries";
+import { addToRoster, searchSeriesRosterPlayers } from "../../queries";
import Info from "../alerts/Info";
import Modal from "../Modal";
import ErrorPopover from "../popover/ErrorPopover";
import SuccessPopover from "../popover/SuccessPopover";
+import RazorpayPayment from "../RazorpayPayment";
-const AddToRoster = props => {
- let modalRef;
+const AddToRoster = componentProps => {
let successPopoverRef, errorPopoverRef, errorModalRef;
const [status, setStatus] = createSignal("");
const [error, setError] = createSignal({});
+ const [search, setSearch] = createSignal("");
+ const [pagination, setPagination] = createSignal({
+ pageIndex: 0,
+ pageSize: 5
+ });
+ const [selectedPlayers, setSelectedPlayers] = createSignal([]);
const queryClient = useQueryClient();
- const userQuery = createQuery(() => ["me"], fetchUser);
const addToRosterMutation = createMutation({
mutationFn: addToRoster,
onSuccess: () =>
@@ -48,8 +42,8 @@ const AddToRoster = props => {
createEffect(function onMutationComplete() {
if (addToRosterMutation.isSuccess) {
- setStatus("Player added to the roster");
- successPopoverRef.showPopover();
+ setStatus("Successfully added player to the roster");
+ successPopoverRef?.showPopover();
}
if (addToRosterMutation.isError) {
try {
@@ -58,9 +52,9 @@ const AddToRoster = props => {
setStatus(mutationError.message);
// Show error modal for long errors with a description, possibly an action button also
if (mutationError.description) {
- errorModalRef.showModal();
+ errorModalRef?.showModal();
} else {
- errorPopoverRef.showPopover();
+ errorPopoverRef?.showPopover();
}
} catch (err) {
throw new Error(`Couldn't parse error object: ${err}`);
@@ -68,131 +62,19 @@ const AddToRoster = props => {
}
});
- return (
-
-
reg.player.id)
- .includes(userQuery.data?.player?.id)
- }
- >
-
-
-
-
Adding a new player to the roster}
- close={() => modalRef.close()}
- >
-
-
-
-
-
-
-
-
-
-
-
-
errorModalRef.close()}
- fullWidth={true}
- title={
-
+ const handleAddToRoster = player => {
+ if (componentProps.playerFee > 0) {
+ setSelectedPlayers([...selectedPlayers(), player]);
+ } else {
+ addToRosterMutation.mutate({
+ event_id: componentProps.eventId,
+ team_id: componentProps.teamId,
+ body: {
+ player_id: player.id
}
- >
-
-
{error().description}
-
-
-
-
- );
-};
-
-const AddPlayerRegistrationForm = componentProps => {
- const [search, setSearch] = createSignal("");
- const [pagination, setPagination] = createSignal({
- pageIndex: 0,
- pageSize: 5
- });
- const [status, setStatus] = createSignal();
-
- const queryClient = useQueryClient();
- const addToRosterMutation = createMutation({
- mutationFn: addToRoster,
- onSuccess: () =>
- queryClient.invalidateQueries({ queryKey: ["tournament-roster"] })
- });
-
- createEffect(function onMutationComplete() {
- if (addToRosterMutation.isSuccess) {
- setStatus("Successfully added player to the roster");
+ });
}
- if (addToRosterMutation.isError) {
- setStatus("Adding to the roster failed");
- }
- });
-
- createEffect(() => {
- console.log(componentProps.isPartOfSeries);
- });
+ };
const dataQuery = createQuery(
() => [
@@ -243,20 +125,15 @@ const AddPlayerRegistrationForm = componentProps => {
when={
!(componentProps.roster || [])
.map(reg => reg.player.id)
+ .includes(props.getValue()) &&
+ !selectedPlayers()
+ .map(p => p.id)
.includes(props.getValue())
}
fallback={Added}
>