Files
cfw-autumn/frontend/src/views/credits/CreditSystemsView.tsx
2025-01-21 11:18:42 +00:00

48 lines
1.3 KiB
TypeScript

"use client";
import React, { useContext } from "react";
import { AppEnv, DBConnection, Feature, FeatureType } from "@autumn/shared";
import CreateCreditSystem from "./CreateCreditSystem";
import { useFeaturesContext } from "../features/FeaturesContext";
import { useAxiosSWR } from "@/services/useAxiosSwr";
import LoadingScreen from "../general/LoadingScreen";
import { CreditsContext } from "./CreditsContext";
import { CreditSystemsTable } from "./CreditSystemsTable";
import { CustomToaster } from "@/components/general/CustomToaster";
function CreditSystemsView({ env }: { env: AppEnv }) {
const { data, isLoading, error, mutate } = useAxiosSWR({
url: "/features",
env: env,
});
if (isLoading) return <LoadingScreen />;
const creditSystems = data?.features.filter(
(feature) => feature.type === FeatureType.CreditSystem
);
return (
<CreditsContext.Provider
value={{
features: data?.features,
env: env,
mutate,
}}
>
<CustomToaster />
<div>
<h1 className="text-xl font-medium">Credits</h1>
<p className="text-sm text-t2">
Define the credit systems your users are entitled to
</p>
</div>
<CreditSystemsTable creditSystems={creditSystems} />
<CreateCreditSystem />
</CreditsContext.Provider>
);
}
export default CreditSystemsView;