diff --git a/src/components/FAB.vue b/src/components/FAB.vue index e8b9dc9..821e764 100644 --- a/src/components/FAB.vue +++ b/src/components/FAB.vue @@ -13,7 +13,6 @@ const props = defineProps({ }) const config = computed(() => { - if (props.mode === "add") { return {icon: "add", label: "Přidat"}; } else if (props.mode === "edit") { @@ -26,7 +25,11 @@ const config = computed(() => { diff --git a/src/components/ListFilters.vue b/src/components/ListFilters.vue index 0679089..80709e8 100644 --- a/src/components/ListFilters.vue +++ b/src/components/ListFilters.vue @@ -38,14 +38,23 @@ onMounted(() => { if (search) { filters.value.search = search; + } else { + filters.value = {}; } }) diff --git a/src/components/LoadMoreList.vue b/src/components/LoadMoreList.vue deleted file mode 100644 index 63a9eee..0000000 --- a/src/components/LoadMoreList.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/src/components/PrimaryAction.vue b/src/components/PrimaryAction.vue new file mode 100644 index 0000000..738cabd --- /dev/null +++ b/src/components/PrimaryAction.vue @@ -0,0 +1,46 @@ + + + + diff --git a/src/components/aircrafts/AircraftsList.vue b/src/components/aircrafts/AircraftsList.vue index 13e55ad..2d17393 100644 --- a/src/components/aircrafts/AircraftsList.vue +++ b/src/components/aircrafts/AircraftsList.vue @@ -1,68 +1,53 @@ diff --git a/src/components/flightPlans/FlightPlansList.vue b/src/components/flightPlans/FlightPlansList.vue index b1a59f1..456a440 100644 --- a/src/components/flightPlans/FlightPlansList.vue +++ b/src/components/flightPlans/FlightPlansList.vue @@ -1,36 +1,48 @@ diff --git a/src/components/flights/FlightsList.vue b/src/components/flights/FlightsList.vue index 7917684..4eb03c5 100644 --- a/src/components/flights/FlightsList.vue +++ b/src/components/flights/FlightsList.vue @@ -2,10 +2,7 @@ import {minutesToHumanReadable} from "src/composables/datetimeUtils"; import {flightName} from "src/composables/flight"; import AvatarFromPhoto from "components/avatars/AvatarFromPhoto.vue"; -import FlightsListSkeleton from "components/flights/skeletons/FlightsListSkeleton.vue"; -import {computed} from "vue"; -import LoadMoreList from "components/LoadMoreList.vue"; -import {pluralize} from "../../composables/utils"; +import {useInfiniteScroll} from "src/composables/pagination"; const props = defineProps({ items: { @@ -16,96 +13,82 @@ const props = defineProps({ type: Boolean, required: true }, - totalItemsCount: { - type: Number, - required: true - }, - itemsPerPage: { - type: Number, - required: false, - default: 5, - }, - isQueryRunning: { - type: Boolean, - required: false, - default: false - } + ...useInfiniteScroll().propsDef }); +const emits = defineEmits([...useInfiniteScroll().emitsDef]) +const {emitLoadMore, hasMoreData} = useInfiniteScroll(emits, props) + const routeDetail = (flight) => { if (props.public) return {name: "publicFlightDetail", params: {username: flight.pilot.publicUsername, flightSlug: flight.urlSlug}} else return {name: "flightDetail", params: {id: flight.id}} }; -const loadMoreCount = computed(() => { - return Math.min(props.itemsPerPage, props.totalItemsCount - props.items.length); -}); -