Skip to content

Instantly share code, notes, and snippets.

fragment TaskListItem on Task {
id
title
description {
plainText
}
dueOn
completedAt
contact {
...ContactName
query Tasks($filter: TaskFiltering, $page: Int = 1, $perPage: Int = 10) {
tasks(filter: $filter, page: $page, perPage: $perPage) {
entries {
...TaskListItem
}
pageInfo {
totalEntries
}
}
currentUser {
import 'package:flutter/material.dart';
import 'package:mobile/__generated__/graphql_types.graphql.dart';
import 'package:mobile/task/widgets/task_list_item.dart';
class TaskList extends StatelessWidget {
const TaskList(
{super.key, required this.tasks, required this.currentUserEmail});
final List<TaskListItemMixin> tasks;
final String currentUserEmail;
@mayyyc
mayyyc / tasks_screen.dart
Created December 9, 2022 03:58
graphql call with artemis generated types in flutter
import 'package:flutter/material.dart';
import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:mobile/__generated__/graphql_types.graphql.dart';
import 'package:mobile/common_widgets/list_query_result.dart';
import 'package:mobile/task/widgets/task_list.dart';
class TasksScreen extends StatefulWidget {
const TasksScreen({super.key});
@override
@mayyyc
mayyyc / build.yaml
Created December 9, 2022 03:30
Set up Artemis
targets:
$default:
sources:
- lib/**
- graphql/**
- tmp/introspection.gql
builders:
artemis:
options:
fragments_glob: graphql/**/**.fragment.gql
@mayyyc
mayyyc / main.dart
Created December 9, 2022 03:13
Set up GraphQL in Flutter app
import 'package:flutter/material.dart';
import 'package:mobile/auth/widgets/auth_provider.dart';
import 'package:mobile/auth/widgets/graphql_provider.dart';
import 'package:mobile/task/screens/tasks_screen.dart';
void main() async {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
@mayyyc
mayyyc / graphql_provider.dart
Last active December 9, 2022 03:01
Set up GraphQL in Flutter app
import 'package:flutter/material.dart';
import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:mobile/utils/constants.dart';
class GraphqlProvider extends StatelessWidget {
const GraphqlProvider({super.key, this.child});
final Widget? child;
@override
Widget build(BuildContext context) {
@mayyyc
mayyyc / SwipeableMobileStepper.tsx
Created September 10, 2022 06:24
material ui carousel view with multiple items per view
import React, { useState } from "react";
import { useTheme } from "@mui/material/styles";
import { Box, MobileStepper, Button } from "@mui/material";
import { KeyboardArrowLeft, KeyboardArrowRight } from "@mui/icons-material";
import SwipeableViews from "react-swipeable-views";
interface ISwipeableMobileStepperProps {
children: JSX.Element[];
itemsPerView: number;
}
@mayyyc
mayyyc / CompanyCellRenderer.tsx
Created December 3, 2021 06:29
AG Grid row grouping example
import React from "react";
import { Link } from "@mui/material";
import { useCompanyListMember } from "companyList/partials/member/CompanyListMemberContext";
import { CompanyListMemberRowFragment } from "__generated__/graphql";
import { CompanyAvatar } from "company/partials/CompanyAvatar";
import { ICellRendererParams } from "ag-grid-community";
export const CompanyCellRenderer: React.FC<ICellRendererParams> = (props) => {
if (!props.data) return null;
const member = props.data.companyListMember as CompanyListMemberRowFragment;
@mayyyc
mayyyc / gridOptions.ts
Created December 3, 2021 05:38
AG Grid row grouping example
import { GridOptions } from "ag-grid-community";
import { CompanyCellRenderer } from "./CellRenderer/CompanyCellRenderer";
import { ContactCountCellRenderer } from "./CellRenderer/ContactCountCellRenderer";
import { EngagementCellRenderer } from "./CellRenderer/EngagementCellRenderer";
import { EditCompanyListCustomFieldsCellRenderer } from "./CellRenderer/EditCompanyListCustomFieldsCellRenderer";
import { ChipsCellRenderer } from "grid/partials/cellRenderer/ChipsCellRenderer";
import { IconLinkCellRenderer } from "grid/partials/cellRenderer/IconLinkCellRenderer";
import { InternalContactCellRenderer } from "./CellRenderer/InternalContactCellRenderer";
import { CustomFieldCellRenderer } from "grid/partials/cellRenderer/CustomFieldCellRenderer";