diff --git a/src/App.tsx b/src/App.tsx
index 34be670b0..9b63f6a58 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -2,15 +2,23 @@ import './App.scss';
import { MoviesList } from './components/MoviesList';
import { NewMovie } from './components/NewMovie';
import moviesFromServer from './api/movies.json';
+import { useState } from 'react';
+import { Movie } from './types/Movie';
export const App = () => {
+ const [movies, setMovies] = useState([...moviesFromServer]);
+
+ const handleAddMovie = (newMovie: Movie) => {
+ setMovies(prevMovies => [...prevMovies, newMovie]);
+ };
+
return (
);
diff --git a/src/components/NewMovie/NewMovie.tsx b/src/components/NewMovie/NewMovie.tsx
index 85bace9dd..332de5c64 100644
--- a/src/components/NewMovie/NewMovie.tsx
+++ b/src/components/NewMovie/NewMovie.tsx
@@ -1,30 +1,90 @@
import { useState } from 'react';
import { TextField } from '../TextField';
+import { Movie } from '../../types/Movie';
-export const NewMovie = () => {
- // Increase the count after successful form submission
- // to reset touched status of all the `Field`s
- const [count] = useState(0);
+type Props = {
+ onAdd: (newMovie: Movie) => void;
+};
+
+export const NewMovie: React.FC = ({ onAdd }) => {
+ const [movieTitle, setMovieTitle] = useState('');
+ const [movieDescription, setMovieDescription] = useState('');
+ const [movieImgUrl, setMovieImgUrl] = useState('');
+ const [movieImdbUrl, setMovieImdbUrl] = useState('');
+ const [movieimdbId, setMovieimdbId] = useState('');
+ const isFormValid = movieTitle && movieImgUrl && movieImdbUrl && movieimdbId;
+ const handleAddMovie = (event: React.FormEvent) => {
+ event.preventDefault();
+
+ const newMovie: Movie = {
+ title: movieTitle,
+ description: movieDescription,
+ imgUrl: movieImgUrl,
+ imdbUrl: movieImdbUrl,
+ imdbId: movieimdbId,
+ };
+
+ onAdd(newMovie);
+
+ setMovieTitle('');
+ setMovieDescription('');
+ setMovieImgUrl('');
+ setMovieImdbUrl('');
+ setMovieimdbId('');
+ };
return (
-