@u3u/vue-hooks
Version:
⚡️ Awesome Vue Hooks
20 lines (19 loc) • 592 B
JavaScript
import { ref, onMounted, onUnmounted } from '@vue/composition-api';
export default function useMedia(query, defaultState) {
if (defaultState === void 0) { defaultState = false; }
var mql;
var matches = ref(defaultState);
var updateMatches = function () {
if (mql)
matches.value = mql.matches;
};
onMounted(function () {
mql = window.matchMedia(query);
mql.addListener(updateMatches);
matches.value = mql.matches;
});
onUnmounted(function () {
mql.removeListener(updateMatches);
});
return matches;
}