my app code

Textform.js

import React,{useState} from ‘react’

export default function TextForm( props) {

     const handelUpClick = () =>{

        console.log(“uppercase was clicked” +text);

        let newText=text.toUpperCase();

        setText(newText)

         }

         const handelLoClick = () =>{

          console.log(“uppercase was clicked” +text);

          let newText=text.toLowerCase();

          setText(newText)

         }

     const handelOnChange=(event)=>{

        console.log(“on change”);

        setText(event.target.value);

     }

     const handelClClick=()=>{

      setText(”);

     }

     const handelCopy=()=>{

      var text=document.querySelector(‘#mybox’);

      text.select();

      navigator.clipboard.writeText(text.value);

     }

     const handelExtraSpace=()=>{

      let newText= text.split(/[ ]+/);

      setText(newText.join(” “))

     }

    const[text,setText]=useState(”);

  return (<>

  <div className=”container”>

    <div>

        <h1>{props.heading}</h1>

  <div className=”mb-3″>

    <textarea className=’form-control’ id=’mybox’ value={text} onChange={handelOnChange} rows=’8′></textarea>

    </div>

    <button className=”btn btn-primary mx-2″ onClick={handelUpClick}>convert to uppercase</button>

    <button className=”btn btn-primary mx-2″ onClick={handelLoClick}>convert to lower case</button>

    <button className=”btn btn-primary mx-2″ onClick={handelClClick}>clear text </button>

    <button className=”btn btn-primary mx-2″ onClick={handelCopy}>copy text </button>

    <button className=”btn btn-primary mx-2″ onClick={handelExtraSpace}>remove extra space</button>

  </div>

  <div className=”container my-3″>

    <h1>your text summery</h1>

    <p>{text.split(” “).length-1} word and {text.length} character</p>

    <p>{ 0.008 * (text.split(” “).length-1)} menuts read</p>

    <h2>Preview</h2>

    <p>{text}</p>

  </div>

  </div>

  </>

  )

}

app.js

import ‘./App.css’;

// import About from ‘./components/About’;

import Navbar from ‘./components/Navbar’;

import TextForm from ‘./components/TextForm’;

import PropTypes from ‘prop-types’;

function App() {

  return (

   <>

<Navbar / >

<TextForm  heading=”enter the text” />

{/* <About /> */}

</>

  );

}

export default App;

Navbar.propTypes={title:PropTypes.string.isRequired,

linktext:PropTypes.string}

Navbar.defaultProps={title:’Word count with Manish’,

 linktext:”About”}

NavBar

import React from ‘react’

export default function Navbar( props) {

  return (

    <nav className=”navbar navbar-expand-lg navbar-dark  bg-dark”>

    <div className=”container-fluid”>

      <a className=”navbar-brand” href=”/”>{props.title}</a>

      <button className=”navbar-toggler” type=”button” data-bs-toggle=”collapse” data-bs-target=”#navbarSupportedContent” aria-controls=”navbarSupportedContent” aria-expanded=”false” aria-label=”Toggle navigation”>

        <span className=”navbar-toggler-icon”></span>

      </button>

      <div className=”collapse navbar-collapse” id=”navbarSupportedContent”>

        <ul className=”navbar-nav me-auto mb-2 mb-lg-0″>

          <li className=”nav-item”>

            <a className=”nav-link active” aria-current=”page” >Home</a>

          </li>

          <li className=”nav-item”>

            <a className=”nav-link” href=”/”>{props.linktext}</a>

          </li>

          <li className=”nav-item dropdown”>

            <a className=”nav-link dropdown-toggle” href=”/” role=”button” data-bs-toggle=”dropdown” aria-expanded=”false”>

              Dropdown

            </a>

            <ul className=”dropdown-menu”>

              <li><a className=”dropdown-item” href=”/”>Action</a></li>

              <li><a className=”dropdown-item” href=”/”>Another action</a></li>

              <li><hr className=”dropdown-divider”/></li>

              <li><a className=”dropdown-item” href=”/”>Something else here</a></li>

            </ul>

          </li>

          <li className=”nav-item”>

            <a className=”nav-link disabled” aria-disabled=”true”>Disabled</a>

          </li>

        </ul>

        <form className=”d-flex” role=”search”>

          <input className=”form-control me-2″ type=”search” placeholder=”Search” aria-label=”Search”/>

          <button className=”btn btn-outline-success” type=”submit”>Search</button>

        </form>

      </div>

    </div>

  </nav>

  )

}

Leave a comment

Design a site like this with WordPress.com
Get started