Ver código fonte

update

tags/Baseline_30082024_FRONTEND_UAT
MSI\derek 1 ano atrás
pai
commit
3b8ce365b6
7 arquivos alterados com 58 adições e 88 exclusões
  1. +27
    -34
      src/app/(main)/settings/changepassword/page.tsx
  2. +3
    -7
      src/app/(main)/settings/staff/user/page.tsx
  3. +2
    -2
      src/app/(main)/settings/user/edit/page.tsx
  4. +1
    -8
      src/components/ChangePassword/ChangePasswordForm.tsx
  5. +0
    -4
      src/components/ChangePassword/ChangePasswordWrapper.tsx
  6. +16
    -27
      src/components/EditUser/EditUser.tsx
  7. +9
    -6
      src/components/EditUser/EditUserWrapper.tsx

+ 27
- 34
src/app/(main)/settings/changepassword/page.tsx Ver arquivo

@@ -14,40 +14,33 @@ import { Metadata } from "next";
import Link from "next/link";
import { Suspense } from "react";


export const metadata: Metadata = {
title: "Change Password",
};
title: "Change Password",
};

const ChangePasswordPage: React.FC = async () => {
const { t } = await getServerI18n("User Group");
// preloadTeamLeads();
// preloadStaff();
return (
<>
<Stack
direction="row"
justifyContent="space-between"
flexWrap="wrap"
rowGap={2}
>
<Typography variant="h4" marginInlineEnd={2}>
{t("Change Password")}
</Typography>
</Stack>
<I18nProvider namespaces={["User Group", "common"]}>
<Suspense fallback={<ChangePassword.Loading />}>
<ChangePassword />
</Suspense>
</I18nProvider>
</>
);
};

const ChangePasswordPage: React.FC = async () => {
const { t } = await getServerI18n("User Group");
// preloadTeamLeads();
// preloadStaff();
return (
<>
<Stack
direction="row"
justifyContent="space-between"
flexWrap="wrap"
rowGap={2}
>
<Typography variant="h4" marginInlineEnd={2}>
{t("Change Password")}
</Typography>
</Stack>
{/* <I18nProvider namespaces={["User Group", "common"]}>
<Suspense fallback={<UserGroupSearch.Loading />}>
<UserGroupSearch />
</Suspense>
</I18nProvider> */}
<I18nProvider namespaces={["User Group", "common"]}>
<Suspense fallback={<ChangePassword.Loading />}>
<ChangePassword />
</Suspense>
</I18nProvider>
</>
);
};
export default ChangePasswordPage;
export default ChangePasswordPage;

+ 3
- 7
src/app/(main)/settings/staff/user/page.tsx Ver arquivo

@@ -7,19 +7,15 @@ import { Suspense } from "react";
import { preloadUser } from "@/app/api/user";
import { searchParamsProps } from "@/app/utils/fetchUtil";

const User: React.FC<searchParamsProps> = async ({
searchParams
}) => {
const User: React.FC<searchParamsProps> = async ({ searchParams }) => {
const { t } = await getServerI18n("user");
preloadUser()
preloadUser();
return (
<>
<Typography variant="h4">{t("Edit User")}</Typography>
<I18nProvider namespaces={["user", "common"]}>
<Suspense fallback={<EditUser.Loading />}>
<EditUser
// id={parseInt(searchParams.id as string)}
/>
<EditUser searchParams={searchParams} />
</Suspense>
</I18nProvider>
</>


+ 2
- 2
src/app/(main)/settings/user/edit/page.tsx Ver arquivo

@@ -20,10 +20,10 @@ const EditUserPage: React.FC<searchParamsProps> = async ({

return (
<>
<I18nProvider namespaces={["team", "common"]}>
<I18nProvider namespaces={["user", "common"]}>
<Suspense fallback={<EditUser.Loading />}>
<EditUser
// id={id}
searchParams={searchParams}
/>
</Suspense>
</I18nProvider>


+ 1
- 8
src/components/ChangePassword/ChangePasswordForm.tsx Ver arquivo

@@ -33,19 +33,12 @@ const ChagnePasswordForm: React.FC = () => {
setValue,
} = useFormContext<PasswordInputs>();

// const resetGroup = useCallback(() => {
// console.log(defaultValues);
// if (defaultValues !== undefined) {
// resetField("description");
// }
// }, [defaultValues]);

return (
<Card sx={{ display: "block" }}>
<CardContent component={Stack} spacing={4}>
<Box>
<Typography variant="overline" display="block" marginBlockEnd={1}>
{t("Group Info")}
{t("Please Fill in all the Fields")}
</Typography>
<Grid container spacing={2} columns={{ xs: 6, sm: 12 }}>
<Grid item xs={6}>


+ 0
- 4
src/components/ChangePassword/ChangePasswordWrapper.tsx Ver arquivo

@@ -7,10 +7,6 @@ interface SubComponents {
}

const ChangePasswordWrapper: React.FC & SubComponents = async () => {
// const records = await fetchAuth()
// const users = await fetchUser()
// console.log(users)
// const auth = records.records as auth[]

return <ChangePassword />;
};


+ 16
- 27
src/components/EditUser/EditUser.tsx Ver arquivo

@@ -33,11 +33,15 @@ import { auth, fetchAuth } from "@/app/api/group/actions";
import AuthAllocation from "./AuthAllocation";

interface Props {
rules: passwordRule
user: UserResult,
rules: passwordRule,
auths: auth[]
}

const EditUser: React.FC<Props> = async ({
rules
user,
rules,
auths
}) => {
const { t } = useTranslation();
const formProps = useForm<UserInputs>();
@@ -46,8 +50,6 @@ const EditUser: React.FC<Props> = async ({
const [tabIndex, setTabIndex] = useState(0);
const router = useRouter();
const [serverError, setServerError] = useState("");
const [data, setData] = useState<UserResult>();
const [auths, setAuths] = useState<auth[]>();

const handleTabChange = useCallback<NonNullable<TabsProps["onChange"]>>(
(_e, newValue) => {
@@ -57,34 +59,23 @@ const EditUser: React.FC<Props> = async ({
);

const errors = formProps.formState.errors;
console.log("asdasd")
const fetchUserDetail = async () => {
useEffect(() => {
try {
// fetch user info
const userDetail = await fetchUserDetails(id);
console.log(userDetail);
const _data = userDetail.data as UserResult;
console.log(_data);
setData(_data);
//fetch user auths
const authDetail = await fetchAuth("user", id);
setAuths(authDetail.records)
const addAuthIds = authDetail.records.filter((item) => item.v === 1).map((item) => item.id).sort((a, b) => a - b);
const addAuthIds = auths && auths.length > 0
? auths.filter((item) => item.v === 1).map((item) => item.id).sort((a, b) => a - b)
: []

formProps.reset({
name: _data.username,
email: _data.email,
addAuthIds: addAuthIds || []
name: user.username,
email: user.email,
addAuthIds: addAuthIds
});
} catch (error) {
console.log(error);
setServerError(t("An error has occurred. Please try again later."));
}
}

useEffect(() => {
fetchUserDetail();
}, []);
}, [user, auths]);

const hasErrorsInTab = (
tabIndex: number,
@@ -92,10 +83,8 @@ console.log("asdasd")
) => {
switch (tabIndex) {
case 0:
console.log("yolo")
return Object.keys(errors).length > 0;
default:
console.log("yolo")
false;
}
};
@@ -123,7 +112,7 @@ console.log("asdasd")
if (!regex_pw.test(pw)) {
haveError = true
formProps.setError("password", { message: "A combination of uppercase letters, lowercase letters, numbers, and symbols is required.", type: "required" })
}
}
}
const userData = {
name: data.name,


+ 9
- 6
src/components/EditUser/EditUserWrapper.tsx Ver arquivo

@@ -6,20 +6,23 @@ import { useSearchParams } from "next/navigation";
import { fetchTeam, fetchTeamDetail } from "@/app/api/team";
import { fetchStaff } from "@/app/api/staff";
import { fetchPwRules, fetchUser, fetchUserDetail } from "@/app/api/user";
import { searchParamsProps } from "@/app/utils/fetchUtil";
import { fetchUserDetails } from "@/app/api/user/actions";
import { fetchAuth } from "@/app/api/group/actions";

interface SubComponents {
Loading: typeof EditUserLoading;
}

interface Props {
// id: number
}
const EditUserWrapper: React.FC<Props> & SubComponents = async ({
// id
const EditUserWrapper: React.FC<searchParamsProps> & SubComponents = async ({
searchParams
}) => {
const id = parseInt(searchParams.id as string)
const pwRule = await fetchPwRules()
const user = await fetchUserDetails(id);
const auths = await fetchAuth("user", id);

return <EditUser rules={pwRule} />
return <EditUser user={user.data} rules={pwRule} auths={auths.records}/>
};

EditUserWrapper.Loading = EditUserLoading;


Carregando…
Cancelar
Salvar