Move useMedia to own file

This commit is contained in:
Caleb Denio 2024-04-03 14:33:12 -04:00
parent 88604df654
commit 33327f7c0a
No known key found for this signature in database
2 changed files with 18 additions and 16 deletions

View file

@ -1,20 +1,6 @@
import React, { useEffect, useRef, useState } from 'react'
import React, { useEffect, useRef } from 'react'
import VanillaTilt from 'vanilla-tilt'
function useMedia(query) {
const [matches, setMatches] = useState(false)
useEffect(() => {
const onChange = e => setMatches(e.matches)
const mq = window.matchMedia(query)
setMatches(mq.matches)
mq.addEventListener('change', onChange)
return () => mq.removeEventListener('change', onChange)
}, [query])
return { matches }
}
import useMedia from '../lib/use-media'
// NOTE(@lachlanjc): only pass one child!
const Tilt = ({ options = {}, children, ...props }) => {

16
lib/use-media.js Normal file
View file

@ -0,0 +1,16 @@
import { useState, useEffect } from 'react'
export default function useMedia(query) {
const [matches, setMatches] = useState(false)
useEffect(() => {
const onChange = e => setMatches(e.matches)
const mq = window.matchMedia(query)
setMatches(mq.matches)
mq.addEventListener('change', onChange)
return () => mq.removeEventListener('change', onChange)
}, [query])
return { matches }
}