Add admin interface to manage instances subscriptions
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
44
js/src/mixins/relay.ts
Normal file
44
js/src/mixins/relay.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import { Component, Vue } from 'vue-property-decorator';
|
||||
import { Refs } from '@/shims-vue';
|
||||
import { ActorType, IActor } from '@/types/actor';
|
||||
import { IFollower } from '@/types/actor/follower.model';
|
||||
|
||||
@Component
|
||||
export default class RelayMixin extends Vue {
|
||||
$refs!: Refs<{
|
||||
table: any,
|
||||
}>;
|
||||
|
||||
checkedRows: IFollower[] = [];
|
||||
page: number = 1;
|
||||
perPage: number = 2;
|
||||
|
||||
toggle(row) {
|
||||
this.$refs.table.toggleDetails(row);
|
||||
}
|
||||
|
||||
async onPageChange(page: number) {
|
||||
this.page = page;
|
||||
await this.$apollo.queries.relayFollowings.fetchMore({
|
||||
variables: {
|
||||
page: this.page,
|
||||
limit: this.perPage,
|
||||
},
|
||||
updateQuery: (previousResult, { fetchMoreResult }) => {
|
||||
if (!fetchMoreResult) return previousResult;
|
||||
const newFollowings = fetchMoreResult.relayFollowings.elements;
|
||||
return {
|
||||
relayFollowings: {
|
||||
__typename: previousResult.relayFollowings.__typename,
|
||||
total: previousResult.relayFollowings.total,
|
||||
elements: [...previousResult.relayFollowings.elements, ...newFollowings],
|
||||
},
|
||||
};
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
isInstance(actor: IActor): boolean {
|
||||
return actor.type === ActorType.APPLICATION && actor.preferredUsername === 'relay';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user