@ -0,0 +1,31 @@ |
|||||||
|
import proxy from "../proxy"; |
||||||
|
const userProduct = { |
||||||
|
list: |
||||||
|
(data = {}) => |
||||||
|
async (dispatch) => |
||||||
|
await proxy.get("userProduct/list", data, { dispatch }), |
||||||
|
info: |
||||||
|
(data = {}) => |
||||||
|
async (dispatch) => |
||||||
|
await proxy.get("userProduct/info", data, { dispatch }), |
||||||
|
update: |
||||||
|
(data = {}, data2 = {}) => |
||||||
|
async (dispatch) => { |
||||||
|
await proxy.put("userProduct/update", data); |
||||||
|
await proxy.get("userProduct/list", data2, { dispatch }); |
||||||
|
}, |
||||||
|
add: |
||||||
|
(data = {}, data2 = {}) => |
||||||
|
async (dispatch) => { |
||||||
|
await proxy.post("userProduct/add", data); |
||||||
|
await proxy.get("userProduct/list", data2, { dispatch }); |
||||||
|
}, |
||||||
|
del: |
||||||
|
(data = {}, data2 = {}) => |
||||||
|
async (dispatch) => { |
||||||
|
await proxy.delete("userProduct/delete", data); |
||||||
|
await proxy.get("userProduct/list", data2, { dispatch }); |
||||||
|
}, |
||||||
|
}; |
||||||
|
|
||||||
|
export default userProduct; |
@ -0,0 +1,28 @@ |
|||||||
|
const initialState = { |
||||||
|
loading: false, |
||||||
|
error: null, |
||||||
|
list: null, |
||||||
|
info: null, |
||||||
|
}; |
||||||
|
export default function userProduct(state = initialState, action) { |
||||||
|
let { type, data } = action; |
||||||
|
switch (type) { |
||||||
|
case "userProduct/list": |
||||||
|
return { ...state, loading: false, list: data, error: null }; |
||||||
|
case "userProduct/info": |
||||||
|
return { ...state, loading: false, list: null, info: data, error: null }; |
||||||
|
case "userProduct/update": |
||||||
|
return { ...state, loading: false, error: null }; |
||||||
|
case "userProduct/add": |
||||||
|
return { ...state, loading: false, error: null }; |
||||||
|
case "userProduct/delete": |
||||||
|
return { ...state, loading: false, error: null }; |
||||||
|
/////////////
|
||||||
|
case "loading": |
||||||
|
return { ...state, loading: true }; |
||||||
|
case "error": |
||||||
|
return { ...state, loading: false, error: data.message }; |
||||||
|
default: |
||||||
|
return state; |
||||||
|
} |
||||||
|
} |
After Width: | Height: | Size: 102 KiB |
After Width: | Height: | Size: 106 KiB |
After Width: | Height: | Size: 90 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 82 KiB |
After Width: | Height: | Size: 83 KiB |
@ -0,0 +1,4 @@ |
|||||||
|
//comment modal
|
||||||
|
//comment for book or bookPage
|
||||||
|
//user can edit self comment
|
||||||
|
//trophy
|
@ -1,214 +1,212 @@ |
|||||||
.mobile-activation{ |
.mobile-activation { |
||||||
width: 100vw; |
width: 100vw; |
||||||
max-width: 650px; |
max-width: 650px; |
||||||
margin: 0px auto; |
margin: 0px auto; |
||||||
padding : 0px 10px 40px; |
padding: 0px 10px 40px; |
||||||
direction: rtl; |
direction: rtl; |
||||||
padding-top: 70px; |
padding-top: 70px; |
||||||
overflow-x: hidden; |
overflow-x: hidden; |
||||||
&__back{ |
&__back { |
||||||
width: 100%; |
width: 100%; |
||||||
justify-content:flex-end; |
justify-content: flex-end; |
||||||
a{ |
a { |
||||||
display: inline; |
display: inline; |
||||||
font-family: numeralLight; |
font-family: numeralLight; |
||||||
text-decoration: none; |
text-decoration: none; |
||||||
padding: 5px 20px 3px; |
padding: 5px 20px 3px; |
||||||
background-color: #00CC69; |
background-color: #00cc69; |
||||||
border-radius: 25px; |
border-radius: 25px; |
||||||
font-size: calc(100vw / 26); |
|
||||||
color: white; |
color: white; |
||||||
&:focus:enabled{ |
&:focus:enabled { |
||||||
text-decoration: none; |
text-decoration: none; |
||||||
} |
} |
||||||
} |
} |
||||||
} |
} |
||||||
&__header{ |
&__header { |
||||||
margin-top: 30px; |
margin-top: 30px; |
||||||
h1{ |
h1 { |
||||||
font-size: calc(100vw / 16); |
|
||||||
font-family: numeralBold; |
font-family: numeralBold; |
||||||
margin-top: 15px; |
margin-top: 15px; |
||||||
color: #00CC69; |
color: #00cc69; |
||||||
letter-spacing: -2px; |
letter-spacing: -2px; |
||||||
} |
} |
||||||
} |
} |
||||||
&__description{ |
&__description { |
||||||
width: 100%; |
width: 100%; |
||||||
margin-top: 30px; |
margin-top: 30px; |
||||||
span{ |
span { |
||||||
font-size: 50px; |
font-size: 50px; |
||||||
color: #00CC69; |
color: #00cc69; |
||||||
margin-left: 10px; |
margin-left: 10px; |
||||||
position: relative; |
position: relative; |
||||||
bottom: 35px; |
bottom: 35px; |
||||||
} |
} |
||||||
p{ |
p { |
||||||
font-size: calc(100vw / 30); |
color: #6f7074; |
||||||
color: #6F7074; |
|
||||||
font-family: numeralMedium; |
font-family: numeralMedium; |
||||||
} |
} |
||||||
} |
} |
||||||
&__form{ |
&__form { |
||||||
width: 100%; |
width: 100%; |
||||||
|
padding: 0px 15px; |
||||||
font-family: numeralMedium; |
font-family: numeralMedium; |
||||||
input{ |
position: fixed; |
||||||
|
bottom: 20px; |
||||||
|
input { |
||||||
width: 100%; |
width: 100%; |
||||||
background-color: #F6F6F6; |
background-color: #f6f6f6; |
||||||
color: #4D4D4F; |
color: #4d4d4f; |
||||||
text-align: center; |
text-align: center; |
||||||
direction: ltr; |
direction: ltr; |
||||||
font-size: calc(100vw / 18); |
|
||||||
border: 0px; |
border: 0px; |
||||||
padding: 15px 0px; |
padding: 15px 0px; |
||||||
border-radius: 10px; |
border-radius: 10px; |
||||||
&:focus{ |
&:focus { |
||||||
outline: 0px; |
outline: 0px; |
||||||
} |
} |
||||||
|
&::placeholder { |
||||||
|
color: #afafaf; |
||||||
|
} |
||||||
} |
} |
||||||
button{ |
button { |
||||||
display: inline; |
display: inline; |
||||||
font-family: numeralLight; |
font-family: numeralLight; |
||||||
text-decoration: none; |
text-decoration: none; |
||||||
padding: 14px 20px 14px; |
padding: 14px 20px 14px; |
||||||
background-color: #00CC69; |
background-color: #00cc69; |
||||||
border-radius: 10px; |
border-radius: 10px; |
||||||
font-size: calc(100vw / 18); |
|
||||||
color: white; |
color: white; |
||||||
border: 0px; |
border: 0px; |
||||||
margin-top: 10px; |
margin-top: 20px; |
||||||
letter-spacing: -1px; |
letter-spacing: -1px; |
||||||
&:focus:enabled{ |
&:focus:enabled { |
||||||
text-decoration: none; |
text-decoration: none; |
||||||
} |
} |
||||||
} |
} |
||||||
|
|
||||||
} |
} |
||||||
&__support{ |
&__support { |
||||||
width: 80%; |
width: 80%; |
||||||
margin-top: 30px; |
margin-top: 30px; |
||||||
span{ |
span { |
||||||
color: #00CC69; |
color: #00cc69; |
||||||
margin-left: 10px; |
margin-left: 10px; |
||||||
} |
} |
||||||
p{ |
p { |
||||||
font-size: calc(100vw / 30); |
font-size: calc(100vw / 30); |
||||||
color: #6F7074; |
color: #6f7074; |
||||||
font-family: numeralMedium; |
font-family: numeralMedium; |
||||||
text-align: center; |
text-align: center; |
||||||
} |
} |
||||||
} |
} |
||||||
&__history{ |
&__history { |
||||||
width: 100%; |
width: 100%; |
||||||
margin: 30px 0px; |
margin: 30px 0px; |
||||||
h2{ |
h2 { |
||||||
font-family: numeralBold; |
font-family: numeralBold; |
||||||
color: #02A255; |
color: #02a255; |
||||||
font-size: calc(100vw / 24); |
font-size: calc(100vw / 24); |
||||||
margin-bottom: 20px; |
margin-bottom: 20px; |
||||||
} |
} |
||||||
} |
} |
||||||
} |
} |
||||||
|
|
||||||
|
.activation { |
||||||
.activation{ |
|
||||||
width: 100vw; |
width: 100vw; |
||||||
max-width: 1250px; |
max-width: 1250px; |
||||||
margin: 0px auto; |
margin: 0px auto; |
||||||
padding : 0px 10px 40px; |
padding: 0px 10px 40px; |
||||||
direction: rtl; |
direction: rtl; |
||||||
overflow-x: hidden; |
overflow-x: hidden; |
||||||
&__header{ |
&__header { |
||||||
max-width: 900px; |
max-width: 900px; |
||||||
width: 100%; |
width: 100%; |
||||||
margin-top: 30px; |
margin-top: 30px; |
||||||
img{ |
img { |
||||||
width: 200px; |
width: 200px; |
||||||
} |
} |
||||||
h1{ |
h1 { |
||||||
font-family: numeralBold; |
font-family: numeralBold; |
||||||
margin-top: 15px; |
margin-top: 15px; |
||||||
color: #00CC69; |
color: #00cc69; |
||||||
letter-spacing: -2px; |
letter-spacing: -2px; |
||||||
} |
} |
||||||
} |
} |
||||||
&__description{ |
&__description { |
||||||
width: 100%; |
width: 100%; |
||||||
margin-top: 30px; |
margin-top: 30px; |
||||||
max-width: 900px; |
max-width: 900px; |
||||||
span{ |
span { |
||||||
font-size: 50px; |
font-size: 50px; |
||||||
color: #00CC69; |
color: #00cc69; |
||||||
margin-left: 10px; |
margin-left: 10px; |
||||||
position: relative; |
position: relative; |
||||||
bottom: 42px; |
bottom: 42px; |
||||||
} |
} |
||||||
p{ |
p { |
||||||
font-size: calc(100vw / 30); |
font-size: calc(100vw / 30); |
||||||
color: #6F7074; |
color: #6f7074; |
||||||
font-family: numeralMedium; |
font-family: numeralMedium; |
||||||
} |
} |
||||||
} |
} |
||||||
&__form{ |
&__form { |
||||||
width: 100%; |
width: 100%; |
||||||
max-width: 900px; |
max-width: 900px; |
||||||
font-family: numeralMedium; |
font-family: numeralMedium; |
||||||
justify-content: space-between; |
justify-content: space-between; |
||||||
input{ |
input { |
||||||
width: 70%; |
width: 70%; |
||||||
background-color: #F6F6F6; |
background-color: #f6f6f6; |
||||||
color: #4D4D4F; |
color: #4d4d4f; |
||||||
text-align: center; |
text-align: center; |
||||||
direction: ltr; |
direction: ltr; |
||||||
border: 0px; |
border: 0px; |
||||||
height: 60px; |
height: 60px; |
||||||
border-radius: 10px; |
border-radius: 10px; |
||||||
&:focus{ |
&:focus { |
||||||
outline: 0px; |
outline: 0px; |
||||||
} |
} |
||||||
} |
} |
||||||
button{ |
button { |
||||||
width : 25%; |
width: 25%; |
||||||
height: 60px; |
height: 60px; |
||||||
display: inline; |
display: inline; |
||||||
font-family: numeralLight; |
font-family: numeralLight; |
||||||
text-decoration: none; |
text-decoration: none; |
||||||
padding: 16px 20px 16px; |
padding: 16px 20px 16px; |
||||||
background-color: #00CC69; |
background-color: #00cc69; |
||||||
border-radius: 10px; |
border-radius: 10px; |
||||||
color: white; |
color: white; |
||||||
border: 0px; |
border: 0px; |
||||||
letter-spacing: -1px; |
letter-spacing: -1px; |
||||||
&:focus:enabled{ |
&:focus:enabled { |
||||||
text-decoration: none; |
text-decoration: none; |
||||||
} |
} |
||||||
} |
} |
||||||
|
|
||||||
} |
} |
||||||
&__support{ |
&__support { |
||||||
width: 100%; |
width: 100%; |
||||||
max-width: 900px; |
max-width: 900px; |
||||||
margin-top: 30px; |
margin-top: 30px; |
||||||
align-items: center; |
align-items: center; |
||||||
span{ |
span { |
||||||
color: #00CC69; |
color: #00cc69; |
||||||
margin-left: 10px; |
margin-left: 10px; |
||||||
} |
} |
||||||
p{ |
p { |
||||||
color: #afafaf; |
color: #afafaf; |
||||||
font-family: numeralMedium; |
font-family: numeralMedium; |
||||||
text-align: center; |
text-align: center; |
||||||
margin-bottom: 0px; |
margin-bottom: 0px; |
||||||
} |
} |
||||||
} |
} |
||||||
&__history{ |
&__history { |
||||||
width: 100%; |
width: 100%; |
||||||
max-width: 900px; |
max-width: 900px; |
||||||
margin: 50px 0px; |
margin: 50px 0px; |
||||||
h2{ |
h2 { |
||||||
font-family: numeralBold; |
font-family: numeralBold; |
||||||
color: #02A255; |
color: #02a255; |
||||||
margin-bottom: 20px; |
margin-bottom: 20px; |
||||||
} |
} |
||||||
} |
} |
||||||
} |
} |
||||||
|
@ -0,0 +1,92 @@ |
|||||||
|
import React from "react"; |
||||||
|
import AddAPhotoIcon from "@material-ui/icons/AddAPhoto"; |
||||||
|
|
||||||
|
import "./index.scss"; |
||||||
|
|
||||||
|
const maxDesktopSize = 1250; |
||||||
|
const maxMobileSize = 550; |
||||||
|
|
||||||
|
const fontSize = { |
||||||
|
desktop: { |
||||||
|
span: window.innerWidth > maxDesktopSize ? 14 : window.innerWidth / 80, |
||||||
|
}, |
||||||
|
mobile: { |
||||||
|
span: window.innerWidth > maxMobileSize ? 14 : window.innerWidth / 30, |
||||||
|
}, |
||||||
|
}; |
||||||
|
|
||||||
|
export default function Document(props) { |
||||||
|
const { parent, name } = props; |
||||||
|
return ( |
||||||
|
<> |
||||||
|
{window.innerWidth < 1000 ? ( |
||||||
|
<div className="mobile-auth-profile__document d-flex justify-content-center align-items-center mb-3"> |
||||||
|
{parent.state.docFileIds === "" ? ( |
||||||
|
<> |
||||||
|
<input |
||||||
|
type="file" |
||||||
|
// parent.onChange(e.target.name, e.target.value)
|
||||||
|
name={name} |
||||||
|
onChange={(e) => |
||||||
|
parent.onChange(e.target.name, e.target.files[0]) |
||||||
|
} |
||||||
|
/> |
||||||
|
<span style={{ fontSize: fontSize.mobile.span }}> |
||||||
|
گواهی تدریس خود را آپلود کنید. |
||||||
|
</span> |
||||||
|
</> |
||||||
|
) : ( |
||||||
|
<> |
||||||
|
<input |
||||||
|
type="file" |
||||||
|
name="file" |
||||||
|
onChange={(e) => |
||||||
|
parent.onChange(e.target.name, e.target.files[0]) |
||||||
|
} |
||||||
|
/> |
||||||
|
<span style={{ color: "rgb(18,140,126)" }}> |
||||||
|
{parent.state.docFileIds.name} |
||||||
|
</span> |
||||||
|
{/* <img src={parent.state.file} alt={"کاربر"} /> */} |
||||||
|
</> |
||||||
|
)} |
||||||
|
</div> |
||||||
|
) : null} |
||||||
|
{window.innerWidth > 1000 ? ( |
||||||
|
<div className="auth-profile__upload d-flex justify-content-center-align-items-center"> |
||||||
|
{parent.state.file === null ? ( |
||||||
|
<> |
||||||
|
<input |
||||||
|
label={props.label} |
||||||
|
onChange={(e) => parent.onChange(e.target.name, e.target.value)} |
||||||
|
name={props.name} |
||||||
|
defaultValue="" |
||||||
|
type="file" |
||||||
|
/> |
||||||
|
<AddAPhotoIcon |
||||||
|
style={{ |
||||||
|
width: 40, |
||||||
|
height: 40, |
||||||
|
color: "grey", |
||||||
|
position: "absolute", |
||||||
|
left: "calc(50% - 20px)", |
||||||
|
top: "calc(50% - 20px)", |
||||||
|
}} |
||||||
|
/> |
||||||
|
</> |
||||||
|
) : ( |
||||||
|
<> |
||||||
|
<input |
||||||
|
label={props.label} |
||||||
|
onChange={(e) => parent.onChange(e.target.name, e.target.value)} |
||||||
|
name={props.name} |
||||||
|
defaultValue="" |
||||||
|
type="file" |
||||||
|
/> |
||||||
|
</> |
||||||
|
)} |
||||||
|
</div> |
||||||
|
) : null} |
||||||
|
</> |
||||||
|
); |
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
.mobile-auth-profile { |
||||||
|
&__document { |
||||||
|
margin: 10px auto; |
||||||
|
width: 100%; |
||||||
|
height: 50px; |
||||||
|
border-radius: 10px; |
||||||
|
border: 2px dashed rgb(209, 209, 209); |
||||||
|
position: relative; |
||||||
|
input { |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
position: absolute; |
||||||
|
left: 0px; |
||||||
|
top: 0px; |
||||||
|
opacity: 0; |
||||||
|
} |
||||||
|
img { |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
object-fit: cover; |
||||||
|
border-radius: 50%; |
||||||
|
} |
||||||
|
span { |
||||||
|
color: #afafaf; |
||||||
|
font-family: numeralLight; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -1,75 +0,0 @@ |
|||||||
.mybooks { |
|
||||||
width: 100vw; |
|
||||||
max-width: 1250px; |
|
||||||
margin: 0px auto; |
|
||||||
padding: 0px 10px; |
|
||||||
direction: rtl; |
|
||||||
min-height: calc(100vh - 288px); |
|
||||||
padding-top: 100px; |
|
||||||
} |
|
||||||
|
|
||||||
.mobile-mybooks { |
|
||||||
width: 100vw; |
|
||||||
max-width: 600px; |
|
||||||
margin: 0px auto; |
|
||||||
padding: 0px; |
|
||||||
direction: rtl; |
|
||||||
overflow-x: hidden; |
|
||||||
padding-top: 70px; |
|
||||||
h1 { |
|
||||||
padding: 0px 10px; |
|
||||||
font-family: numeralBold; |
|
||||||
color: #6f7074; |
|
||||||
margin-bottom: 10px; |
|
||||||
} |
|
||||||
&__item { |
|
||||||
margin: 10px auto; |
|
||||||
height: calc(100vh - 200px); |
|
||||||
max-height: 470px; |
|
||||||
background-color: #fafafa; |
|
||||||
border-radius: 0.5rem; |
|
||||||
box-shadow: 0 3px 8px 0 rgb(0 0 0 / 16%); |
|
||||||
margin-bottom: 20px; |
|
||||||
h1 { |
|
||||||
font-family: numeralMedium; |
|
||||||
color: #6f7074; |
|
||||||
margin-bottom: 10px; |
|
||||||
} |
|
||||||
& img { |
|
||||||
height: 60%; |
|
||||||
width: 80%; |
|
||||||
min-height: 250px; |
|
||||||
max-height: 290px; |
|
||||||
border-radius: 10px; |
|
||||||
margin: 20px auto; |
|
||||||
// max-height: 320px; |
|
||||||
// margin: 20px 40px; |
|
||||||
} |
|
||||||
&--buttons { |
|
||||||
// padding: 5px 9px; |
|
||||||
width: 80%; |
|
||||||
margin: 0px auto; |
|
||||||
a { |
|
||||||
text-decoration: none; |
|
||||||
width: 100%; |
|
||||||
padding: 8px; |
|
||||||
font-family: numeralMedium; |
|
||||||
margin-bottom: 10px; |
|
||||||
border-radius: 10px; |
|
||||||
text-align: center; |
|
||||||
position: relative; |
|
||||||
display: flex; |
|
||||||
align-items: center; |
|
||||||
justify-content: space-between; |
|
||||||
margin: 10px 5px; |
|
||||||
img { |
|
||||||
position: absolute; |
|
||||||
top: calc(50% - 8px); |
|
||||||
left: 5px; |
|
||||||
width: 20px; |
|
||||||
height: 20px; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|