Profile page improvements.

This commit is contained in:
Patrick Fic
2023-01-19 13:05:00 -08:00
parent 42b4534d21
commit 79f032ecaf
7 changed files with 184 additions and 94 deletions

View File

@@ -46627,6 +46627,48 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>changepassword</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>profileinfo</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
</children> </children>
</folder_node> </folder_node>
<folder_node> <folder_node>

View File

@@ -1,4 +1,4 @@
import { Button, Form, Input, notification } from "antd"; import { Button, Card, Col, Form, Input, notification } from "antd";
import { LockOutlined } from "@ant-design/icons"; import { LockOutlined } from "@ant-design/icons";
import React from "react"; import React from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
@@ -48,14 +48,23 @@ export default connect(
}; };
return ( return (
<div> <>
<Col span={24}>
<Form <Form
onFinish={handleFinish} onFinish={handleFinish}
autoComplete={"no"} autoComplete={"no"}
initialValues={currentUser} initialValues={currentUser}
layout="vertical" layout="vertical"
> >
<LayoutFormRow> <Card
title={t("user.labels.profileinfo")}
extra={
<Button type="primary" key="submit" htmlType="submit">
{t("user.actions.updateprofile")}
</Button>
}
>
<LayoutFormRow noDivider>
<Form.Item <Form.Item
label={t("user.fields.displayname")} label={t("user.fields.displayname")}
rules={[ rules={[
@@ -72,19 +81,29 @@ export default connect(
<Input /> <Input />
</Form.Item> </Form.Item>
</LayoutFormRow> </LayoutFormRow>
</Card>
<Button type="primary" key="submit" htmlType="submit">
{t("user.actions.updateprofile")}
</Button>
</Form> </Form>
</Col>
<Col span={24}>
<Form <Form
onFinish={handleChangePassword} onFinish={handleChangePassword}
autoComplete={"no"} autoComplete={"no"}
initialValues={currentUser} initialValues={currentUser}
layout="vertical" layout="vertical"
>
<Card
title={t("user.labels.changepassword")}
extra={
<Button type="primary" key="submit" htmlType="submit">
{t("user.actions.changepassword")}
</Button>
}
> >
<LayoutFormRow> <LayoutFormRow>
<Form.Item label={t("general.labels.newpassword")} name="password"> <Form.Item
label={t("general.labels.newpassword")}
name="password"
>
<Input <Input
prefix={<LockOutlined />} prefix={<LockOutlined />}
type="password" type="password"
@@ -119,10 +138,9 @@ export default connect(
/> />
</Form.Item> </Form.Item>
</LayoutFormRow> </LayoutFormRow>
<Button type="primary" key="submit" htmlType="submit"> </Card>
{t("user.actions.changepassword")}
</Button>
</Form> </Form>
</div> </Col>
</>
); );
}); });

View File

@@ -1,13 +1,13 @@
import React from "react"; import React, { useState } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { Table, Button, Typography } from "antd"; import { Table, Button, Typography, Space, Input, Card, Col } from "antd";
export default function ProfileShopsComponent({ export default function ProfileShopsComponent({
loading, loading,
data, data,
updateActiveShop, updateActiveShop,
}) { }) {
const { t } = useTranslation(); const { t } = useTranslation();
const [search, setSearch] = useState("");
const columns = [ const columns = [
{ {
title: t("associations.fields.shopname"), title: t("associations.fields.shopname"),
@@ -39,18 +39,39 @@ export default function ProfileShopsComponent({
), ),
}, },
]; ];
console.log("🚀 ~ file: profile-shops.component.jsx:45 ~ data", data);
const filteredData =
search === ""
? data
: data.filter((d) =>
d.bodyshop.shopname.toLowerCase().includes(search.toLowerCase())
);
return ( return (
<Table <Col span={24}>
title={() => ( <Card
title={
<Typography.Title level={4}> <Typography.Title level={4}>
{t("profile.labels.activeshop")} {t("profile.labels.activeshop")}
</Typography.Title> </Typography.Title>
)} }
extra={
<Input.Search
value={search}
onChange={(e) => setSearch(e.target.value)}
allowClear
placeholder={t("general.labels.search")}
/>
}
>
<Table
pagination={false}
loading={loading} loading={loading}
columns={columns} columns={columns}
rowKey="id" rowKey="id"
dataSource={data} dataSource={filteredData}
/> />
</Card>
</Col>
); );
} }

View File

@@ -1,3 +1,4 @@
import { Row } from "antd";
import React from "react"; import React from "react";
import ProfileMyComponent from "../../components/profile-my/profile-my.component"; import ProfileMyComponent from "../../components/profile-my/profile-my.component";
import ProfileShopsContainer from "../../components/profile-shops/profile-shops.container"; import ProfileShopsContainer from "../../components/profile-shops/profile-shops.container";
@@ -5,8 +6,10 @@ import ProfileShopsContainer from "../../components/profile-shops/profile-shops.
export default function ProfilePage() { export default function ProfilePage() {
return ( return (
<div> <div>
<Row gutter={[16, 16]}>
<ProfileMyComponent /> <ProfileMyComponent />
<ProfileShopsContainer /> <ProfileShopsContainer />
</Row>
</div> </div>
); );
} }

View File

@@ -2747,7 +2747,9 @@
"photourl": "Avatar URL" "photourl": "Avatar URL"
}, },
"labels": { "labels": {
"actions": "Actions" "actions": "Actions",
"changepassword": "Change Password",
"profileinfo": "Profile Info"
}, },
"successess": { "successess": {
"passwordchanged": "Password changed successfully. " "passwordchanged": "Password changed successfully. "

View File

@@ -2747,7 +2747,9 @@
"photourl": "URL de avatar" "photourl": "URL de avatar"
}, },
"labels": { "labels": {
"actions": "" "actions": "",
"changepassword": "",
"profileinfo": ""
}, },
"successess": { "successess": {
"passwordchanged": "" "passwordchanged": ""

View File

@@ -2747,7 +2747,9 @@
"photourl": "URL de l'avatar" "photourl": "URL de l'avatar"
}, },
"labels": { "labels": {
"actions": "" "actions": "",
"changepassword": "",
"profileinfo": ""
}, },
"successess": { "successess": {
"passwordchanged": "" "passwordchanged": ""