aboutsummaryrefslogtreecommitdiff
path: root/src/stores
diff options
context:
space:
mode:
authorRuben Beltran del Rio <ruben@unlimited.pizza>2021-04-15 23:06:26 +0200
committerRuben Beltran del Rio <ruben@unlimited.pizza>2021-04-15 23:06:26 +0200
commit58f7d52150456713d3132408668a92d0f6f3d084 (patch)
tree4b346042a684e416e53c4f4ac779060b832ad227 /src/stores
parent63c3da2af27fcfb1a9893ade03543e3a30949c8d (diff)
Port to sveltekit
Diffstat (limited to 'src/stores')
-rw-r--r--src/stores/actions.js25
-rw-r--r--src/stores/apollo.js54
2 files changed, 55 insertions, 24 deletions
diff --git a/src/stores/actions.js b/src/stores/actions.js
new file mode 100644
index 0000000..3a6d13f
--- /dev/null
+++ b/src/stores/actions.js
@@ -0,0 +1,25 @@
+import { writable } from 'svelte/store';
+
+/*
+ * This is a store to set the actions in the top header.
+ */
+
+export const actions = writable({});
+
+export const enableTopicActions = (id) => {
+
+ actions.update((actionsValue) => {
+
+ actionsValue.topic_id = id;
+ return actionsValue;
+ });
+};
+
+export const disableTopicActions = () => {
+
+ actions.update((actionsValue) => {
+
+ delete actionsValue.id;
+ return actionsValue;
+ });
+};
diff --git a/src/stores/apollo.js b/src/stores/apollo.js
index 0ac2443..f84a183 100644
--- a/src/stores/apollo.js
+++ b/src/stores/apollo.js
@@ -8,33 +8,39 @@ import { client } from '$/config/apollo';
export const store = function store({ key, query, initialValue = null, variables = {} }) {
- return readable({
- loading: true,
- data: initialValue,
- error: undefined
- }, (set) => {
+ return readable(
+ {
+ loading: true,
+ data: initialValue,
+ error: undefined
+ },
+ (set) => {
- const handleError = function (error) {
+ const handleError = function (error) {
- return set({
- loading: false,
- data: initialValue,
- error
- });
- };
+ return set({
+ loading: false,
+ data: initialValue,
+ error
+ });
+ };
- client.watchQuery({ query, variables }).subscribe((result) => {
+ client.watchQuery({ query, variables }).subscribe(
+ (result) => {
- if (result.errors) {
- const error = new ApolloError({ graphQLErrors: result.errors });
- return handleError(error);
- }
+ if (result.errors) {
+ const error = new ApolloError({ graphQLErrors: result.errors });
+ return handleError(error);
+ }
- set({
- loading: false,
- data: result.data[key],
- error: undefined
- });
- }, (error) => handleError(error));
- });
+ set({
+ loading: false,
+ data: result.data[key],
+ error: undefined
+ });
+ },
+ (error) => handleError(error)
+ );
+ }
+ );
};