unknown 2 tahun lalu
induk
melakukan
006c469d54

File diff ditekan karena terlalu besar
+ 1 - 1
.eslintcache


+ 2 - 3
src/components/AuthPage/Registration/index.tsx

@@ -3,7 +3,7 @@ import { useState } from 'react';
 import { useDispatch } from 'react-redux';
 import { useDispatch } from 'react-redux';
 
 
 import UploadAvatar from './UploadAvatar'
 import UploadAvatar from './UploadAvatar'
-import { asyncCreateUser } from '../../../redux/authorization/operations'
+import { asyncCreateUser,asyncLogin } from '../../../redux/authorization/operations'
 import { format } from '../../../helpers'
 import { format } from '../../../helpers'
 
 
 const useStyles = makeStyles({
 const useStyles = makeStyles({
@@ -44,7 +44,6 @@ const Registration = () => {
     const validLastName = lastName.length
     const validLastName = lastName.length
     if (validName < 3 || validName > 30) return false
     if (validName < 3 || validName > 30) return false
     if (validLastName < 3 || validLastName > 30) return false
     if (validLastName < 3 || validLastName > 30) return false
-    if(!upload) return false
     return true
     return true
   }
   }
 
 
@@ -63,7 +62,7 @@ const Registration = () => {
     }
     }
   }
   }
 
 
-  const handleUpdateUser = async() => dispatch(asyncCreateUser(name,lastName,upload))
+  const handleUpdateUser = async () => dispatch(asyncCreateUser(name, lastName, upload))
 
 
   return (
   return (
     <div className={classes.container} >
     <div className={classes.container} >

+ 1 - 1
src/components/AuthPage/index.tsx

@@ -31,7 +31,7 @@ const AuthPage = () => {
 
 
   const handleIsValidCode = async (e: React.ChangeEvent<HTMLInputElement>):Promise<void> => {
   const handleIsValidCode = async (e: React.ChangeEvent<HTMLInputElement>):Promise<void> => {
     if (isCode && format(e.target.value) === isCode) 
     if (isCode && format(e.target.value) === isCode) 
-      dispatch(await asyncLogin(number, isCode, () => setIsReg(!isReg)))
+      dispatch(asyncLogin(number, isCode, () => setIsReg(!isReg)))
     }  
     }  
 
 
   const handleSendCode = async () => {
   const handleSendCode = async () => {

+ 2 - 2
src/components/HomePage/LeftBar/EditBar/EditList/index.tsx

@@ -4,7 +4,7 @@ import Avatar from '@mui/material/Avatar';
 import AddAPhotoIcon from '@mui/icons-material/AddAPhoto';
 import AddAPhotoIcon from '@mui/icons-material/AddAPhoto';
 import { useEffect } from 'react';
 import { useEffect } from 'react';
 import { useDropzone } from 'react-dropzone';
 import { useDropzone } from 'react-dropzone';
-import { format,firstLetter } from '../../../../../helpers'
+import { format,firstLetter,prodAwsS3 } from '../../../../../helpers'
 import { IAuthorizationState } from '../../../../../typescript/redux/authorization/interfaces'
 import { IAuthorizationState } from '../../../../../typescript/redux/authorization/interfaces'
 
 
 const useStyles = makeStyles({
 const useStyles = makeStyles({
@@ -105,7 +105,7 @@ const EditList = (props: IEditList) => {
           <AddAPhotoIcon className={classes.addPhoto} fontSize='large' />
           <AddAPhotoIcon className={classes.addPhoto} fontSize='large' />
           <input {...getInputProps()}/>
           <input {...getInputProps()}/>
         </div>
         </div>
-         <Avatar alt={name} src={avatarUrl?`${avatarUrl}`:undefined}
+         <Avatar alt={name} src={avatarUrl?`${prodAwsS3}/${avatarUrl}`:undefined}
            sx={{ background: color, width: 120, height: 120}}>
            sx={{ background: color, width: 120, height: 120}}>
            {`${firstLetter(name)}${firstLetter(lastName)}`}
            {`${firstLetter(name)}${firstLetter(lastName)}`}
          </Avatar>
          </Avatar>

+ 2 - 2
src/components/HomePage/LeftBar/SettingsBar/SettingsPicture/index.tsx

@@ -5,7 +5,7 @@ import { getAuthorizationState } from '../../../../../redux/authorization/select
 import { Carousel } from 'react-responsive-carousel';
 import { Carousel } from 'react-responsive-carousel';
 import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';
 import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';
 import Avatar from '@mui/material/Avatar';
 import Avatar from '@mui/material/Avatar';
-import { firstLetter, slicedWord, timeStampEU } from '../../../../../helpers'
+import { firstLetter, slicedWord, timeStampEU,prodAwsS3 } from '../../../../../helpers'
 import DeleteModal from './DeleteModal';
 import DeleteModal from './DeleteModal';
 
 
 
 
@@ -83,7 +83,7 @@ const SettingsPicture = () => {
       <Carousel onChange={(i)=> setIndex(i)} selectedItem={index}>
       <Carousel onChange={(i)=> setIndex(i)} selectedItem={index}>
         {avatarsArr.map(({ avatarUrl, updatedAt }) =>
         {avatarsArr.map(({ avatarUrl, updatedAt }) =>
           <div key={avatarUrl}>
           <div key={avatarUrl}>
-            <img alt='pic' src={`${avatarUrl}`}/>
+            <img alt='pic' src={`${prodAwsS3}/${avatarUrl}`}/>
             <p className="legend">{timeStampEU(updatedAt)}</p>         
             <p className="legend">{timeStampEU(updatedAt)}</p>         
           </div>)}
           </div>)}
        </Carousel>      
        </Carousel>      

+ 3 - 0
src/helpers/index.ts

@@ -153,6 +153,8 @@ const filteredMessages = (arr: TAllMessages,date:any,value:string) => arr.filter
 
 
 const prodBaseURL = 'http://localhost:3000'
 const prodBaseURL = 'http://localhost:3000'
 
 
+const prodAwsS3 = 'https://my-telegram-bucket.s3.eu-west-1.amazonaws.com'
+
 const refreshAppTime = 3000
 const refreshAppTime = 3000
 
 
 export {
 export {
@@ -173,5 +175,6 @@ export {
   sortByRecent,
   sortByRecent,
   filteredMessages,
   filteredMessages,
   prodBaseURL,
   prodBaseURL,
+  prodAwsS3,
   refreshAppTime,
   refreshAppTime,
 }
 }

TEMPAT SAMPAH
src/img/transparent.psd


+ 7 - 7
src/redux/authorization/operations/index.ts

@@ -8,16 +8,16 @@ import {
 } from '../action';
 } from '../action';
 import { setToken, loginUser, logoutUser, updateCredentials, updateUserAvatar, currentUser } from '../../../api-data';
 import { setToken, loginUser, logoutUser, updateCredentials, updateUserAvatar, currentUser } from '../../../api-data';
 import { IAuthorizationState } from '../../../typescript/redux/authorization/interfaces'
 import { IAuthorizationState } from '../../../typescript/redux/authorization/interfaces'
-import { TResPromiseAll } from '../../../typescript/redux/authorization/types'
 
 
 const asyncCreateUser = (name:string, lastName: string,file:object) => async (dispatch:any) => {
 const asyncCreateUser = (name:string, lastName: string,file:object) => async (dispatch:any) => {
   try {
   try {
-    const formData: any = new FormData()
-    formData.append("avatar", file);
-    const data = await Promise.all<TResPromiseAll>(
-    [updateUserAvatar(formData), updateCredentials({ name, lastName, originalName:name, originalLastName:lastName})])
-    const token = data.find(el => el?.token)?.token
-    token&&dispatch(actionLogInSuccess(token))
+    const data = await updateCredentials<{token:string}>({ name, lastName, originalName:name, originalLastName:lastName})
+    if(data&&data.token) dispatch(actionLogInSuccess(data.token))    
+    if (file) {
+      const formData: any = new FormData()
+      formData.append("avatar", file);
+      await updateUserAvatar(formData)
+    }
   } catch (e) {
   } catch (e) {
     dispatch(actionLogInReject())
     dispatch(actionLogInReject())
   } 
   } 

+ 0 - 3
src/typescript/redux/authorization/interfaces.ts

@@ -25,7 +25,4 @@ export interface IAuthorizationPayload  {
   payload: IAuthorizationState
   payload: IAuthorizationState
 }
 }
 
 
-export interface IResToken  {
-  token?: string | null
-}
 
 

+ 0 - 3
src/typescript/redux/authorization/types.ts

@@ -1,3 +0,0 @@
-import { IResToken } from './interfaces'
-
-export type TResPromiseAll = IResToken | undefined