@@ -77,10 +77,9 @@ import { displayName, usernameWithDomain } from "@/types/actor";
|
||||
import DiscussionListItem from "@/components/Discussion/DiscussionListItem.vue";
|
||||
import RouteName from "../../router/name";
|
||||
import { MemberRole } from "@/types/enums";
|
||||
|
||||
import { useGroupDiscussionsList } from "@/composition/apollo/discussions";
|
||||
import { IMember } from "@/types/actor/member.model";
|
||||
import EmptyContent from "@/components/Utils/EmptyContent.vue";
|
||||
import { useGroup } from "@/composition/apollo/group";
|
||||
import { usePersonStatusGroup } from "@/composition/apollo/actor";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { useRouteQuery, integerTransformer } from "vue-use-route-query";
|
||||
@@ -92,10 +91,13 @@ const DISCUSSIONS_PER_PAGE = 10;
|
||||
|
||||
const props = defineProps<{ preferredUsername: string }>();
|
||||
|
||||
const { group, loading: groupLoading } = useGroup(props.preferredUsername, {
|
||||
discussionsPage: page.value,
|
||||
discussionsLimit: DISCUSSIONS_PER_PAGE,
|
||||
});
|
||||
const { group, loading: groupLoading } = useGroupDiscussionsList(
|
||||
props.preferredUsername,
|
||||
{
|
||||
discussionsPage: page.value,
|
||||
discussionsLimit: DISCUSSIONS_PER_PAGE,
|
||||
}
|
||||
);
|
||||
|
||||
const { person, loading: personLoading } = usePersonStatusGroup(
|
||||
props.preferredUsername
|
||||
@@ -109,7 +111,7 @@ useHead({
|
||||
|
||||
const groupMemberships = computed((): (string | undefined)[] => {
|
||||
if (!person.value || !person.value.id) return [];
|
||||
return person.value.memberships.elements
|
||||
return (person.value.memberships?.elements ?? [])
|
||||
.filter(
|
||||
(membership: IMember) =>
|
||||
![
|
||||
|
||||
@@ -649,7 +649,7 @@ const FullAddressAutoComplete = defineAsyncComponent(
|
||||
// },
|
||||
// },
|
||||
// group: {
|
||||
// query: FETCH_GROUP,
|
||||
// query: FETCH_GROUP_PUBLIC,
|
||||
// fetchPolicy: "cache-and-network",
|
||||
// variables() {
|
||||
// return {
|
||||
|
||||
@@ -73,9 +73,9 @@
|
||||
t(
|
||||
"{count} members",
|
||||
{
|
||||
count: group.members.total,
|
||||
count: group.members?.total,
|
||||
},
|
||||
group.members.total
|
||||
group.members?.total
|
||||
)
|
||||
}}
|
||||
<router-link
|
||||
@@ -388,9 +388,9 @@
|
||||
<!-- Private things -->
|
||||
<div class="flex-1 m-0 flex flex-col flex-wrap gap-2">
|
||||
<!-- Group discussions -->
|
||||
<Discussions :group="group" class="flex-1" />
|
||||
<Discussions :group="discussionGroup ?? group" class="flex-1" />
|
||||
<!-- Resources -->
|
||||
<Resources :group="group" class="flex-1" />
|
||||
<Resources :group="resourcesGroup ?? group" class="flex-1" />
|
||||
</div>
|
||||
<!-- Public things -->
|
||||
<div class="flex-1 m-0 flex flex-col flex-wrap gap-2">
|
||||
@@ -452,9 +452,9 @@
|
||||
t(
|
||||
"{count} members",
|
||||
{
|
||||
count: group.members.total,
|
||||
count: group.members?.total,
|
||||
},
|
||||
group.members.total
|
||||
group.members?.total
|
||||
)
|
||||
}}
|
||||
</event-metadata-block>
|
||||
@@ -671,6 +671,7 @@ import { useAnonymousReportsConfig } from "../../composition/apollo/config";
|
||||
import { computed, defineAsyncComponent, inject, ref, watch } from "vue";
|
||||
import { useCurrentActorClient } from "@/composition/apollo/actor";
|
||||
import { useGroup, useLeaveGroup } from "@/composition/apollo/group";
|
||||
import { useGroupDiscussionsList } from "@/composition/apollo/discussions";
|
||||
import { useRouter } from "vue-router";
|
||||
import { useMutation, useQuery } from "@vue/apollo-composable";
|
||||
import AccountGroup from "vue-material-design-icons/AccountGroup.vue";
|
||||
@@ -691,6 +692,7 @@ import Posts from "@/components/Group/Sections/PostsSection.vue";
|
||||
import Events from "@/components/Group/Sections/EventsSection.vue";
|
||||
import { Dialog } from "@/plugins/dialog";
|
||||
import { Notifier } from "@/plugins/notifier";
|
||||
import { useGroupResourcesList } from "@/composition/apollo/resources";
|
||||
|
||||
const props = defineProps<{
|
||||
preferredUsername: string;
|
||||
@@ -705,6 +707,14 @@ const {
|
||||
} = useGroup(props.preferredUsername, { afterDateTime: new Date() });
|
||||
const router = useRouter();
|
||||
|
||||
const { group: discussionGroup } = useGroupDiscussionsList(
|
||||
props.preferredUsername
|
||||
);
|
||||
const { group: resourcesGroup } = useGroupResourcesList(
|
||||
props.preferredUsername,
|
||||
{ resourcesPage: 1, resourcesLimit: 3 }
|
||||
);
|
||||
|
||||
const { t } = useI18n({ useScope: "global" });
|
||||
|
||||
// const { person } = usePersonStatusGroup(group);
|
||||
@@ -1037,7 +1047,7 @@ const isCurrentActorOnADifferentDomainThanGroup = computed((): boolean => {
|
||||
|
||||
const members = computed((): IMember[] => {
|
||||
return (
|
||||
group.value?.members.elements.filter(
|
||||
(group.value?.members?.elements ?? []).filter(
|
||||
(member: IMember) =>
|
||||
![
|
||||
MemberRole.INVITED,
|
||||
|
||||
@@ -290,7 +290,10 @@ const { result: membershipsResult, loading: membershipsLoading } = useQuery<{
|
||||
}>(
|
||||
PERSON_MEMBERSHIPS,
|
||||
() => ({ id: currentActor.value?.id }),
|
||||
() => ({ enabled: currentActor.value?.id !== undefined })
|
||||
() => ({
|
||||
enabled:
|
||||
currentActor.value?.id !== undefined && currentActor.value?.id !== null,
|
||||
})
|
||||
);
|
||||
const memberships = computed(() => membershipsResult.value?.person.memberships);
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
variant="text"
|
||||
:to="{
|
||||
name: RouteName.REGISTER,
|
||||
params: {
|
||||
query: {
|
||||
default_email: credentials.email,
|
||||
default_password: credentials.password,
|
||||
},
|
||||
@@ -143,14 +143,6 @@ import { LoginError, LoginErrorCode } from "@/types/enums";
|
||||
import { useCurrentUserClient } from "@/composition/apollo/user";
|
||||
import { useHead } from "@vueuse/head";
|
||||
|
||||
const props = withDefaults(
|
||||
defineProps<{
|
||||
email?: string;
|
||||
password?: string;
|
||||
}>(),
|
||||
{ email: "", password: "" }
|
||||
);
|
||||
|
||||
const { t } = useI18n({ useScope: "global" });
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
@@ -177,8 +169,9 @@ const errors = ref<string[]>([]);
|
||||
const submitted = ref(false);
|
||||
|
||||
const credentials = reactive({
|
||||
email: "",
|
||||
password: "",
|
||||
email: typeof route.query.email === "string" ? route.query.email : "",
|
||||
password:
|
||||
typeof route.query.password === "string" ? route.query.password : "",
|
||||
});
|
||||
|
||||
const redirect = ref<string | undefined>("");
|
||||
@@ -298,9 +291,6 @@ const currentProvider = computed(() => {
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
credentials.email = props.email;
|
||||
credentials.password = props.password;
|
||||
|
||||
const query = route?.query;
|
||||
errorCode.value = query?.code as LoginErrorCode;
|
||||
redirect.value = query?.redirect as string | undefined;
|
||||
|
||||
@@ -181,7 +181,7 @@
|
||||
variant="text"
|
||||
:to="{
|
||||
name: RouteName.LOGIN,
|
||||
params: {
|
||||
query: {
|
||||
email: credentials.email,
|
||||
password: credentials.password,
|
||||
},
|
||||
@@ -212,7 +212,7 @@ import AuthProviders from "../../components/User/AuthProviders.vue";
|
||||
import { computed, reactive, ref, watch } from "vue";
|
||||
import { useMutation, useQuery } from "@vue/apollo-composable";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { useRouter } from "vue-router";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { useHead } from "@vueuse/head";
|
||||
import { AbsintheGraphQLErrors } from "@/types/errors.model";
|
||||
|
||||
@@ -221,6 +221,7 @@ type errorMessage = { type: errorType; message: string };
|
||||
type credentialsType = { email: string; password: string; locale: string };
|
||||
|
||||
const { t, locale } = useI18n({ useScope: "global" });
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
|
||||
const { result: configResult } = useQuery<{ config: IConfig }>(CONFIG);
|
||||
@@ -229,17 +230,10 @@ const config = computed(() => configResult.value?.config);
|
||||
|
||||
const showGravatar = ref(false);
|
||||
|
||||
const props = withDefaults(
|
||||
defineProps<{
|
||||
email?: string;
|
||||
password?: string;
|
||||
}>(),
|
||||
{ email: "", password: "" }
|
||||
);
|
||||
|
||||
const credentials = reactive<credentialsType>({
|
||||
email: props.email,
|
||||
password: props.password,
|
||||
email: typeof route.query.email === "string" ? route.query.email : "",
|
||||
password:
|
||||
typeof route.query.password === "string" ? route.query.password : "",
|
||||
locale: "en",
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user