local-weather/app/page.tsx

35 lines
1.0 KiB
TypeScript

'use client'
import LocationSearch from '@/components/LocationSearch';
import WeatherNow from '../components/WeatherNow'
import { createContext, useState } from 'react';
import { defaultGeoLocation } from './defaultState';
import { LocationContextType, coordType } from '@/types/types';
import WeatherIcon from '@/components/WeatherIcon';
export const LocationContext = createContext<LocationContextType>({
geoLocation: defaultGeoLocation,
setGeoLocation: () => {} // Default function, does nothing
});
export default function Home() {
const [geoLocation, setGeoLocation] = useState<coordType>(defaultGeoLocation);
// Create an object that will be passed to the context provider
const contextValue: LocationContextType = {
geoLocation,
setGeoLocation
};
return (
<main>
<div className='block mx-auto max-w-4xl'>
<LocationContext.Provider value={contextValue}>
<LocationSearch />
<WeatherIcon />
<WeatherNow />
</LocationContext.Provider>
</div>
</main>
);
}