Skip to content
This repository has been archived by the owner on Feb 22, 2023. It is now read-only.

Commit

Permalink
TS-ify use-load-more and use TS and defineComponent in layouts and pa…
Browse files Browse the repository at this point in the history
…ges (#1473)

* TS-ify use-load-more and use TS and defineComponent in layouts and pages

* Apply suggestions from code review
  • Loading branch information
obulat authored Jun 2, 2022
1 parent 2b9a216 commit adcd306
Show file tree
Hide file tree
Showing 8 changed files with 46 additions and 38 deletions.
26 changes: 0 additions & 26 deletions src/composables/use-load-more.js

This file was deleted.

21 changes: 21 additions & 0 deletions src/composables/use-load-more.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { computed, ComputedRef } from '@nuxtjs/composition-api'

import { useMediaStore } from '~/stores/media'

/**
* Fetches media on 'Load More' button click.
*/
export const useLoadMore = (searchTerm: ComputedRef<string>) => {
const canLoadMore = computed(() => searchTerm.value.trim() !== '')

const onLoadMore = async () => {
const mediaStore = useMediaStore()
if (canLoadMore.value) {
await mediaStore.fetchMedia({
shouldPersistMedia: true,
})
}
}

return { canLoadMore, onLoadMore }
}
2 changes: 1 addition & 1 deletion src/composables/use-media-query.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,6 @@ export const isMinScreen = (breakpointName: Breakpoint, options?: Options) => {
/**
* Check if the user prefers reduced motion or not.
*/
export function useReducedMotion(options: Options) {
export function useReducedMotion(options?: Options) {
return useMediaQuery('(prefers-reduced-motion: reduce)', options)
}
3 changes: 1 addition & 2 deletions src/layouts/error.vue
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,10 @@ import { defineComponent } from '@nuxtjs/composition-api'
import VFourOhFour from '~/components/VFourOhFour.vue'
const Error = defineComponent({
export default defineComponent({
name: 'ErrorPage',
components: { VFourOhFour },
layout: 'blank',
props: ['error'],
})
export default Error
</script>
2 changes: 1 addition & 1 deletion src/pages/about.vue
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
</VContentPage>
</template>

<script>
<script lang="ts">
import { defineComponent } from '@nuxtjs/composition-api'
import VLink from '~/components/VLink.vue'
Expand Down
11 changes: 8 additions & 3 deletions src/pages/search/audio.vue
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,12 @@
</template>

<script lang="ts">
import { computed, defineComponent, useMeta } from '@nuxtjs/composition-api'
import {
computed,
defineComponent,
toRef,
useMeta,
} from '@nuxtjs/composition-api'
import { useLoadMore } from '~/composables/use-load-more'
import { isMinScreen } from '~/composables/use-media-query'
Expand Down Expand Up @@ -72,8 +77,8 @@ export default defineComponent({
focusFilters.focusFilterSidebar(event, Focus.Last)
}
}
const { canLoadMore, onLoadMore } = useLoadMore(props)
const searchTermRef = toRef(props, 'searchTerm')
const { canLoadMore, onLoadMore } = useLoadMore(searchTermRef)
return {
results,
Expand Down
11 changes: 9 additions & 2 deletions src/pages/search/image.vue
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,12 @@
</template>

<script lang="ts">
import { computed, defineComponent, useMeta } from '@nuxtjs/composition-api'
import {
computed,
defineComponent,
toRef,
useMeta,
} from '@nuxtjs/composition-api'
import { propTypes } from '~/pages/search/search-page.types'
import { useLoadMore } from '~/composables/use-load-more'
Expand All @@ -25,7 +30,9 @@ export default defineComponent({
useMeta({ title: `${props.searchTerm} | Openverse` })
const results = computed(() => props.resultItems.image)
const { canLoadMore, onLoadMore } = useLoadMore(props)
const searchTermRef = toRef(props, 'searchTerm')
const { canLoadMore, onLoadMore } = useLoadMore(searchTermRef)
const focusFilters = useFocusFilters()
const handleShiftTab = () => {
Expand Down
8 changes: 5 additions & 3 deletions src/pages/search/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
<VAllResultsGrid :can-load-more="canLoadMore" @load-more="onLoadMore" />
</template>

<script>
import { useMeta, defineComponent } from '@nuxtjs/composition-api'
<script lang="ts">
import { defineComponent, toRef, useMeta } from '@nuxtjs/composition-api'
import { useLoadMore } from '~/composables/use-load-more'
import { propTypes } from '~/pages/search/search-page.types'
Expand All @@ -17,7 +17,9 @@ export default defineComponent({
setup(props) {
useMeta({ title: `${props.searchTerm} | Openverse` })
const { canLoadMore, onLoadMore } = useLoadMore(props)
const searchTermRef = toRef(props, 'searchTerm')
const { canLoadMore, onLoadMore } = useLoadMore(searchTermRef)
return { canLoadMore, onLoadMore }
},
head: {
Expand Down

0 comments on commit adcd306

Please sign in to comment.