Showing posts with label REACT JS. Show all posts
Showing posts with label REACT JS. Show all posts

Friday, February 2, 2024

Lift Shift Up (Child to parent data transfer)

February 02, 2024 0

 Lift Shift Up 

(Child to parent data transfer)


// Child Component



import { FormControl, InputLabel, MenuItem, Select } from "@mui/material";
import { useEffect, useState } from "react";

export default function Selectbox({ sendDataToParent }) {

    const [data, setData] = useState(['']);
    const [showuser, setShowUser] = useState('');
    const GetApiData = window.apiGetData;

    useEffect(() => {

        const handleFetchCharacter = async () => {
            try {
                // const jsonData = await fetApi();
                const jsonData = await GetApiData(`http://-----/api/-------`);
                const result = jsonData['result'];
                console.log("Result :-", result);
                setData(result);
            } catch (error) {
                // Handle error, e.g., show an error message
                console.error('Error fetching character:', error);
            }
        };

        handleFetchCharacter();
    }, [GetApiData]);

    const handleChange = (event) => {
        // console.log("data  :" , jsonvalue);
        const selectedValue = event.target.value;
        console.log("Target Value :- ", event.target.value);

        setShowUser(event.target.value);
        sendDataToParent(selectedValue);
    };



    // console.log("All types data", data)

    return (
        <FormControl fullWidth>
            <InputLabel id="demo-simple-select-label">User Type</InputLabel>
            <Select
                labelId="demo-simple-select-label"
                id="demo-simple-select"
                value={showuser}
                label="Show User Type"
                onChange={handleChange}
            >
                {
                    data.map((item, index) =>
                        index !== 0 && (
                            <MenuItem key={item.id} value={item.id}>{item.usertype}</MenuItem>
                        )
                    )
                }
            </Select>

        </FormControl>
    );
}


// Parent Component



import { Box, Button, Divider, InputAdornment, Stack, TextField } from '@mui/material';
import SignPic from '../../asset/images/signin.jpg'
import { Bodytext, Headingtext, SubTitletext, Titletext } from '../../component/utils/Mytext';
import { MYCOLOR } from '../../component/utils/MyColor';

import { getAuth, createUserWithEmailAndPassword, GoogleAuthProvider, signInWithPopup } from "firebase/auth"
import { app } from "../../firebase"
import { useNavigate } from 'react-router-dom';
import { useState } from 'react';
import SelectBox from '../../component/Select';


const auth = getAuth(app);
const googleProvider = new GoogleAuthProvider();


export default function SignUp() {
    const navigate = useNavigate();
    const [email, setEmail] = useState('')
    const [password, setPassword] = useState('')
    const [mobileno, setMobileno] = useState('')

    const [usertype, setUsertype] = useState('')

    const handleSelectData = (dataFromChild) => {
        setUsertype(dataFromChild);
    }


    const signupUser = () => {
        console.warn(email, password, mobileno, usertype)
        createUserWithEmailAndPassword(
            auth,
            email, //'avisingh@gmail.com',
            password //"Avi123"
        ).then((value) => { console.log(value) });

        // navigate('/signin');
    }

    const signupWithGoogle = () => {
        signInWithPopup(auth, googleProvider)
            .then((user) => console.log("User Created :", user))
            .catch((err) => console.error("User Not Created :", err));

    }

    return (
        <>
            <Box style={{ margin: "10px" }} >
                <img src={SignPic} alt='Sign In Pic' height="350px" width="100%" style={{ borderRadius: '16px', objectFit: 'fill' }} />
            </Box>
            <Stack alignItems="center">
                <Box
                    sx={{
                        position: 'absolute',
                        zIndex: 0,
                        top: "220px",
                        backgroundColor: MYCOLOR.whitetext,
                        width: '500px',
                       
                    }}
                >

                    <Box sx={{ marginX: '10px' }}>
                        <Box paddingY={1}>
                            <SelectBox sendDataToParent={handleSelectData} />
                        </Box>
                        <h6>Data from Child: {usertype}</h6>
                       

                        <TextField label='Email' variant='standard' fullWidth sx={{ marginBottom: '10px' }} value={email} onChange={(e) => setEmail(e.target.value)} />
                        <TextField label='Password' variant='standard' fullWidth sx={{ marginBottom: '10px' }} value={password} onChange={(e) => setPassword(e.target.value)} />
                        <TextField label='Mobile No' variant='standard' fullWidth sx={{ marginBottom: '10px' }} value={mobileno} onChange={(e) => setMobileno(e.target.value)} />


                        <Titletext name={"Or "} whiteColor={false} pX={10} lineHeight={1} />

                        <Box sx={{ marginBottom: '10px' }} >
                            <Button variant='contained' onClick={signupWithGoogle} sx={{
                                backgroundColor: MYCOLOR.blacktext,
                                '&:hover': {
                                    backgroundColor: MYCOLOR.primary,
                                },
                            }}>Sign Up Google</Button>
                        </Box>

                        <Box>
                            <Button variant='contained' onClick={signupUser} fullWidth sx={{
                                backgroundColor: MYCOLOR.blacktext,
                                '&:hover': {
                                    backgroundColor: MYCOLOR.primary,
                                },
                            }} >Create User</Button>
                        </Box>
                        <Box sx={{ marginY: '10px', display: 'flex', alignItems: 'baseline' }}>
                            <Titletext name={"Already have a member? "} whiteColor={false} lineHeight={1} />
                            <Button onClick={() => navigate('/signin')} sx={{
                                color: 'blue',
                                fontWeight: 'bold'
                            }} >LogIn</Button>
                        </Box>

                    </Box>

                </Box>

            </Stack>
           
        </>
    );
}

Thursday, February 1, 2024

Email Id Before @ (print Name) in Java Script

February 01, 2024 0

 Email Id Before @ (print Name) in Java Script

Email Shorting


ex:     avisinghone@gmail.com

sol :     avisinghone


export default function Homepage() {
const length = user.email.length;
    let name = '';
   
    for (let i = 0; i < length; i++) {
        if (user.email[i] === "@") {
            name = user.email.substring(0, i)
            break;
        }
    }
    console.log(name)

return (
        <>
            <Box sx={{ paddingTop: '1px' }}>
                <h1>Hello {name}</h1>

            </Box>

        </>
    );

Monday, December 4, 2023

Hello Print

December 04, 2023 0





Index.js


import React from 'react';

import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

App.js


function App() {
  return (
    <div>
      <h1>Hello Print</h1>
    </div>
  );
}

export default App;

Sunday, December 3, 2023

Create React App

December 03, 2023 0

 Create React App


1 :-        npx create-react-app my_app


              where  my_app is name of web application



2 :-         Enter App Location

                    cd my_app   



3:-            Start Developer Server

                                npm start