style(components): fix formatting on story listing components

This commit is contained in:
☙◦ The Tablet ❀ GamerGirlandCo ◦❧ 2023-10-10 22:07:57 -04:00
parent dd30f08d9a
commit 6f770a1cb8
Signed by: tablet
GPG Key ID: 924A5F6AF051E87C
3 changed files with 340 additions and 301 deletions

View File

@ -1,5 +1,5 @@
<script setup lang="ts">
const props = defineProps<{ label?: string }>()
const props = defineProps<{ label?: string }>();
</script>
<template>

View File

@ -1,48 +1,52 @@
<script lang="ts" setup>
import type { IStory } from "~/models/stories/index";
import { log } from "~/lib/server/logger";
import { format } from "date-fns";
import icon from "../icon.vue";
import { theme } from "ant-design-vue";
import metaItem from "./metaItem.vue";
const { useToken } = theme;
const { token } = useToken()
const dark = inject<Ref<boolean>>("dark")
let prop = defineProps<{ story: IStory, last?: boolean }>()
const idxo = ((prop.last || false) ? prop.story.chapters.length : 1) - 1
console.log("posti->", prop.story.chapters[ prop.story.chapters.length - 1 ])
const shortDate = format(Date.parse(
prop.story.chapters[ prop.story.chapters.length - 1 ].posted.toString()
const { token } = useToken();
const dark = inject<Ref<boolean>>("dark");
let prop = defineProps<{ story: IStory; last?: boolean }>();
const idxo = (prop.last || false ? prop.story.chapters.length : 1) - 1;
// log.debug("posti->", prop.story.chapters[ prop.story.chapters.length - 1 ]);
const shortDate = format(
Date.parse(
prop.story.chapters[prop.story.chapters.length - 1]?.posted!.toString(),
),
"yyyy/MM/dd"
)
const longDate = format(Date.parse(
prop.story.chapters[ prop.story.chapters.length - 1 ].posted.toString()
"yyyy/MM/dd",
);
const longDate = format(
Date.parse(
prop.story.chapters[prop.story.chapters.length - 1]?.posted!.toString(),
),
"iiii',' yyyy-MM-dd"
)
"iiii',' yyyy-MM-dd",
);
</script>
<template>
<a-card>
<template #title>
<div style="padding-top: 1em; padding-bottom: 0.8em;">
<div style="padding-top: 1em; padding-bottom: 0.8em">
<NuxtLink :to="`/story/${story._id}/${idxo + 1}`">
{{ story.title }}
</NuxtLink>
<div style="display: flex; font-size: 0.9em; align-items: baseline;" class="headerthing">
<div
style="display: flex; font-size: 0.9em; align-items: baseline"
class="headerthing"
>
<span> a </span>
<div
style=""
v-for="(band, idx) in story.chapters[idxo].bands.filter((a) => !!a)"
>
<span>
a
</span>
<div style="" v-for="(band, idx) in story.chapters[ idxo ].bands.filter(a => !!a)">
<span>
<NuxtLink :to="`/band/${band._id}`">
{{ band.name }}
</NuxtLink>{{ idx < story.chapters[ idxo ].bands.length - 1 ? ", " : "" }}
<NuxtLink :to="`/band/${band._id}`"> {{ band.name }} </NuxtLink
>{{ idx < story.chapters[idxo].bands.length - 1 ? ", " : "" }}
</span>
</div>
<span>
fic by
</span>
<span> fic by </span>
<span>
<NuxtLink :to="`/user/${story.author._id}`">
{{ story.author.username }}
@ -56,17 +60,18 @@ const longDate = format(Date.parse(
Written as a gift for
<NuxtLink :to="`/user/${story.ficmas.wisher?._id || 1}`">
{{ story.ficmas.wisher?.username || "<...>" }}
</NuxtLink> as part of {{ story.ficmas.year }}&rsquo;s
<span v-if="story.ficmas.anniversary">
Anniversary Ficmas Fest
</span>
<span v-else>
A Very Kinky Rockfic Ficmas Fest.
</span>
</NuxtLink>
as part of {{ story.ficmas.year }}&rsquo;s
<span v-if="story.ficmas.anniversary"> Anniversary Ficmas Fest </span>
<span v-else> A Very Kinky Rockfic Ficmas Fest. </span>
</a-card>
<a-card v-if="story.challenge != null" :style="{
background: story.challenge.color
}" class="lessPadding">
<a-card
v-if="story.challenge != null"
:style="{
background: story.challenge.color,
}"
class="lessPadding"
>
Entry for the
<NuxtLink :to="`/challenge/${story.challenge._id}`">
{{ story.challenge.name }}
@ -81,9 +86,7 @@ const longDate = format(Date.parse(
{{ story.chapters.length }} chapters
</NuxtLink>
</span>
<span v-else>
{{ story.chapters.length }} chapter
</span>
<span v-else> {{ story.chapters.length }} chapter </span>
<span>
{{ story.chapters[idxo].nsfw ? "Adult" : "Not so adult" }}
</span>
@ -100,10 +103,15 @@ const longDate = format(Date.parse(
{{ story.chapters[idxo].characters.join(", ") }}
</meta-item>
<meta-item label="Relationship(s)">
<div style="display: inline-block" v-for="(rel, idx) in story.chapters[ idxo ].relationships">
<div
style="display: inline-block"
v-for="(rel, idx) in story.chapters[idxo].relationships"
>
<span>
{{ Array.isArray(rel) ? rel.join("/") : rel }}
{{ idx < story.chapters[ idxo ].relationships.length - 1 ? "," : "" }}
{{
idx < story.chapters[idxo].relationships.length - 1 ? "," : ""
}}
</span>
</div>
<span v-if="story.chapters[idxo].relationships.length < 1">
@ -123,7 +131,12 @@ const longDate = format(Date.parse(
<div class="stats">
<span>
<span class="staticon">
<icon :istyle="!dark ? 'solid' : 'regular'" icolor="#ff2883" :size="12" name="heart"/>
<icon
:istyle="!dark ? 'solid' : 'regular'"
icolor="#ff2883"
:size="12"
name="heart"
/>
</span>
<span>
{{ story.favs }}
@ -131,7 +144,12 @@ const longDate = format(Date.parse(
</span>
<span>
<span class="staticon">
<icon :istyle="!dark ? 'solid' : 'regular'" icolor="#1787d7" :size="12" name="book-open" />
<icon
:istyle="!dark ? 'solid' : 'regular'"
icolor="#1787d7"
:size="12"
name="book-open"
/>
</span>
<span>
{{ story.views }}
@ -139,7 +157,12 @@ const longDate = format(Date.parse(
</span>
<span>
<span class="staticon">
<icon :istyle="!dark ? 'solid' : 'regular'" icolor="#51e07c" :size="12" name="thumbs-up" />
<icon
:istyle="!dark ? 'solid' : 'regular'"
icolor="#51e07c"
:size="12"
name="thumbs-up"
/>
</span>
<span>
{{ story.recs }}
@ -147,7 +170,12 @@ const longDate = format(Date.parse(
</span>
<span>
<span class="staticon">
<icon :istyle="!dark ? 'solid' : 'regular'" icolor="#c2d420" :size="12" name="download" />
<icon
:istyle="!dark ? 'solid' : 'regular'"
icolor="#c2d420"
:size="12"
name="download"
/>
</span>
<span>
{{ story.downloads }}

View File

@ -1,15 +1,22 @@
<script setup lang="ts">
;
import singleStory from '~/components/listings/singleStory.vue';
const route = useRoute()
let curPage = ref(route.query.page || 1)
const props = defineProps<{ prefix: string; }>()
let { data }: any = await useApiFetch(`${props.prefix}/stories`, {
import singleStory from "~/components/listings/singleStory.vue";
import { IStory } from "~/models/stories";
const route = useRoute();
let curPage = ref(route.query.page || 1);
const props = defineProps<{ prefix?: string; items?: IStory[] }>();
let data;
if (!props.prefix) {
data = props.items;
} else if (!props.items) {
data = (
await useApiFetch<any>(`${props.prefix}`, {
query: {
page: curPage
}
page: curPage,
},
})
let rdata = ref(data)
).data;
}
let rdata = ref(data);
const pagiChange = async (page, pageSize) => {
curPage.value = page;
// await navigateTo({
@ -18,23 +25,27 @@ const pagiChange = async (page, pageSize) => {
// page
// }
// })
// let { data }: any = await useApiFetch(`${props.prefix}/stories`, {
// let {data: data } = await useApiFetch(`${props.prefix}/stories`, {
// query: {
// page: curPage
// }
// })
// rdata.value = data;
}
};
</script>
<template>
<a-list :pagination="{
<a-list
:pagination="{
defaultPageSize: 20,
total: rdata.total,
defaultCurrent: curPage as number,
// onChange: pagiChange,
hideOnSinglePage: true,
showSizeChanger: false
}" :data-source="rdata.stories" item-layout="vertical">
showSizeChanger: false,
}"
:data-source="rdata.stories"
item-layout="vertical"
>
<template #renderItem="{ item }">
<!-- {{ item.title }} -->
<single-story :story="item" />