Add global search

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2022-08-26 16:08:58 +02:00
parent bfc936f57c
commit 48935e2168
216 changed files with 3646 additions and 2806 deletions

View File

@@ -61,7 +61,7 @@ export function usePersonStatusGroup(
subscribeToMore(() => ({
document: GROUP_MEMBERSHIP_SUBSCRIPTION_CHANGED,
variables: {
id: currentActor.value?.id,
actorId: currentActor.value?.id,
group: unref(groupFederatedUsername),
},
}));

View File

@@ -13,6 +13,7 @@ import {
MAPS_TILES,
RESOURCE_PROVIDERS,
RESTRICTIONS,
SEARCH_CONFIG,
TIMEZONES,
UPLOAD_LIMITS,
} from "@/graphql/config";
@@ -192,3 +193,12 @@ export function useAnalytics() {
const analytics = computed(() => result.value?.config.analytics);
return { analytics, error, loading };
}
export function useSearchConfig() {
const { result, error, loading, onResult } = useQuery<{
config: Pick<IConfig, "search">;
}>(SEARCH_CONFIG);
const searchConfig = computed(() => result.value?.config.search);
return { searchConfig, error, loading, onResult };
}

View File

@@ -7,7 +7,8 @@ import {
UPDATE_GROUP,
} from "@/graphql/group";
import { IGroup, IPerson } from "@/types/actor";
import { MemberRole } from "@/types/enums";
import { IAddress } from "@/types/address.model";
import { GroupVisibility, MemberRole, Openness } from "@/types/enums";
import { IMediaUploadWrapper } from "@/types/media.model";
import { ApolloCache, FetchResult, InMemoryCache } from "@apollo/client/core";
import { useMutation, useQuery } from "@vue/apollo-composable";
@@ -31,9 +32,7 @@ export function useGroup(
name: string | undefined | Ref<string | undefined>,
options: useGroupOptions = {}
) {
console.debug("using group with", name);
const { result, error, loading, onError, refetch } = useQuery<
const { result, error, loading, onResult, onError, refetch } = useQuery<
{
group: IGroup;
},
@@ -59,20 +58,22 @@ export function useGroup(
() => ({ enabled: unref(name) !== undefined })
);
const group = computed(() => result.value?.group);
return { group, error, loading, onError, refetch };
return { group, error, loading, onResult, onError, refetch };
}
export function useCreateGroup(variables: {
preferredUsername: string;
name: string;
summary?: string;
avatar?: IMediaUploadWrapper;
banner?: IMediaUploadWrapper;
}) {
export function useCreateGroup() {
const { currentActor } = useCurrentActorClient();
return useMutation(CREATE_GROUP, () => ({
variables,
return useMutation<
{ createGroup: IGroup },
{
preferredUsername: string;
name: string;
summary?: string;
avatar?: IMediaUploadWrapper;
banner?: IMediaUploadWrapper;
}
>(CREATE_GROUP, () => ({
update: (store: ApolloCache<InMemoryCache>, { data }: FetchResult) => {
const query = {
query: PERSON_MEMBERSHIPS,
@@ -96,10 +97,19 @@ export function useCreateGroup(variables: {
}));
}
export function useUpdateGroup(variables: any) {
return useMutation<{ updateGroup: IGroup }>(UPDATE_GROUP, () => ({
variables,
}));
export function useUpdateGroup() {
return useMutation<
{ updateGroup: IGroup },
{
id: string;
name?: string;
summary?: string;
openness?: Openness;
visibility?: GroupVisibility;
physicalAddress?: IAddress;
manuallyApprovesFollowers?: boolean;
}
>(UPDATE_GROUP);
}
export function useDeleteGroup(variables: { groupId: string }) {