Skip to content

Instantly share code, notes, and snippets.

View Matt-Dionis's full-sized avatar

Matt Dionis Matt-Dionis

  • Worcester, MA
View GitHub Profile
import gql from "graphql-tag";
const UPDATE_APP_BAR_COLOR_SETTING_MUTATION = gql`
mutation updateAppBarColorSetting($setting: String!) {
updateAppBarColorSetting(setting: $setting) @client
}
`;
export default UPDATE_APP_BAR_COLOR_SETTING_MUTATION;
const [updateUserSetting] = useMutation(
UPDATE_APP_BAR_COLOR_SETTING_MUTATION,
{
variables: { setting },
update: cache => {
const data = cache.readQuery({
query: APP_BAR_COLOR_SETTING_QUERY
});
const dataClone = {
import React from "react";
import { useMutation } from "@apollo/react-hooks";
import Button from "@material-ui/core/Button";
import UPDATE_APP_BAR_COLOR_SETTING_MUTATION from "../graphql/UPDATE_APP_BAR_COLOR_SETTING_MUTATION";
import APP_BAR_COLOR_SETTING_QUERY from "../graphql/APP_BAR_COLOR_SETTING_QUERY";
function SettingsComponent({ setting }) {
const [updateUserSetting] = useMutation(
import React from "react";
import { useQuery } from "@apollo/react-hooks";
import AppBar from "@material-ui/core/AppBar";
import Toolbar from "@material-ui/core/Toolbar";
import Typography from "@material-ui/core/Typography";
import IconButton from "@material-ui/core/IconButton";
import MenuIcon from "@material-ui/icons/Menu";
import SettingsComponent from "./components/SettingsComponent";
import gql from "graphql-tag";
const APP_BAR_COLOR_SETTING_QUERY = gql`
query appBarColorSetting {
appBarColorSetting @client {
id @client
name @client
setting @client
}
}
{
"appBarColorSetting": {
"id": 1,
"name": "App Bar Color",
"setting": "primary",
"__typename": "AppBarColorSetting"
}
}
import React from "react";
import ReactDOM from "react-dom";
import gql from "graphql-tag";
import { ApolloClient } from "apollo-client";
import { ApolloProvider } from "@apollo/react-hooks";
import { InMemoryCache } from "apollo-cache-inmemory";
import App from "./App";
import userSettings from "./userSettings";
const { ApolloServer, gql } = require("apollo-server");
const typeDefs = gql`
interface UserSetting {
filler: Boolean!
}
type AppBarColorSetting implements UserSetting {
filler: Boolean!
}
@Matt-Dionis
Matt-Dionis / apollo_client_2_vue.js
Last active October 26, 2017 07:23
Apollo-client 2.0 setup in VueJS (with basic caching and subscriptions) *warning: will not work until vue-apollo is updated to work with apollo-client 2.0
import { ApolloClient } from 'apollo-client'
import { ApolloLink } from 'apollo-link'
import { HttpLink } from 'apollo-link-http'
import { WebSocketLink } from 'apollo-link-ws'
import Cache from 'apollo-cache-inmemory'
import { getOperationAST } from 'graphql'
import Vue from 'vue'
import VueApollo from 'vue-apollo'
@Matt-Dionis
Matt-Dionis / v-html.js
Created August 4, 2017 12:35
v-html unit tests
import Vue from 'vue'
describe('Directive v-html', () => {
it('should render html', () => {
const vm = new Vue({
template: '<div v-html="a"></div>',
data: { a: 'hello' }
}).$mount()
expect(vm.$el.innerHTML).toBe('hello')
})