Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[redesign] implement sidebar #2543

Merged
merged 2 commits into from
Jul 11, 2022
Merged

[redesign] implement sidebar #2543

merged 2 commits into from
Jul 11, 2022

Conversation

thomasheyenbrock
Copy link
Collaborator

@thomasheyenbrock thomasheyenbrock commented Jul 6, 2022

Part of #2325

This adds the new sidebar on the left side that contains the toggle buttons for docs and history, as well as (currently non-functional) buttons for showing the short-keys and the settings modal. It also moves over the doc explorer to the right side.

💡 Reviewing with hidden whitespaces reduces the changed LOCs significantly!

Preview is here: https://deploy-preview-2543--graphiql-test.netlify.app/

Note: No changeset here as we already have one for the redesign in #2523.

@changeset-bot
Copy link

changeset-bot bot commented Jul 6, 2022

⚠️ No Changeset found

Latest commit: 80833b6

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@thomasheyenbrock thomasheyenbrock changed the title implement sidebar in new design [redesign] implement sidebar Jul 6, 2022
@codecov
Copy link

codecov bot commented Jul 6, 2022

Codecov Report

❗ No coverage uploaded for pull request base (graphiql-v2@3529c06). Click here to learn what that means.
The diff coverage is n/a.

@@              Coverage Diff               @@
##             graphiql-v2    #2543   +/-   ##
==============================================
  Coverage               ?   69.53%           
==============================================
  Files                  ?       64           
  Lines                  ?     4087           
  Branches               ?     1363           
==============================================
  Hits                   ?     2842           
  Misses                 ?     1237           
  Partials               ?        8           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3529c06...80833b6. Read the comment docs.

Copy link
Member

@acao acao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well this looks fantastic!

Is there a plan to move some more of these components into small component files in graphiql-react perhaps, as well as some implementation specific components in graphiql as needed? Just seeing graphiql.tsx grow and grow makes me nervous for contributors haha!

There is still a plan for adding the component library and storybook/styleguidest/ladle/or what have you for some baseline, css-var and class selector? theme-able components, yes?

update: just re-checked and wow, this codebase changes quickly! i see there are many components in @graphiql/react, not just context, hooks and icons. So you'll probably be eventually moving these to separate component files in @graphiql/react then great!

@acao acao requested a review from dimaMachina July 8, 2022 21:02
@dimaMachina
Copy link
Collaborator

dimaMachina commented Jul 8, 2022

Looks nice!
Not related to your PR but does there is some plan to look better GraphiQL on mobile?
image

I guess it could be awesome to change flex-direction on some breakpoints for div with class graphiql-session

@thomasheyenbrock
Copy link
Collaborator Author

@acao definitely worth exploring a storybook-like component library in the future. I'm focussing on getting the redesign out first (basically graphiql@2), after that we can also do more iterations on @graphiql/react that are non-breaking anymore for the graphiql package. I'd still keep @graphiql/react in 0.x to indicate that this is not yet 100% stable and there might be some more changes down the road.

@B2o5T good point! But also here I'd defer this to a later point in time, just to have better focus on the redesign.

@thomasheyenbrock thomasheyenbrock merged commit aeba740 into graphiql-v2 Jul 11, 2022
@thomasheyenbrock thomasheyenbrock deleted the feat/sidebar branch July 11, 2022 07:50
@thomasheyenbrock thomasheyenbrock mentioned this pull request Jul 11, 2022
thomasheyenbrock added a commit that referenced this pull request Jul 13, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Jul 14, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Jul 20, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Jul 22, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Jul 27, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Jul 27, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Aug 1, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Aug 2, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Aug 4, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Aug 5, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Aug 5, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Aug 7, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Aug 8, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Aug 9, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Aug 9, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Aug 9, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Aug 9, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Aug 9, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Aug 15, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Aug 19, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Aug 24, 2022
* implement sidebar in new design

* simplify callback
thomasheyenbrock added a commit that referenced this pull request Aug 24, 2022
* [redesign]: editor in new design (#2513)

* add postcss config to allow nesting

* avoid processing css from `@graphiql/react` with postcss

* add css files for default fonts

* add long description with markdown to dev schema

* rewrite completion tooltip

* move editor css to @graphiql/react

* git mv editor components to `@graphiql/react`

* adjust editor components after moving to `@graphiql/react`

* move styles for auto-inserted leads

* make dynamic padding more resilient and add explanatory comment

* add extra color to avoid conflicts

* colocate markdown and deprecation styles

* add changesets

* fix spell checking

* add changeset for graphiql@2

* don't enter pre-release mode in changeset

* more elaborate changeset message

* [redesign] layout for editor components (#2515)

* add icons to `@graphiql/react`

* add `UnstyledButton` ui component

* implement new design for editors layout

* rename `Unstyled` to `UnStyled` for spell checking

* remove unused class and whitespace in `className`

* make tiny change for deploy preview 🤞

* this will do it, i think?

Co-authored-by: Rikki Schulte <[email protected]>

* set default background color for editors (#2528)

* set default background colors via css variables (#2530)

* move editor styles to `@graphiql/react` (#2532)

* refresh editor after hiding (#2537)

* add caller argument to editor hooks (#2538)

* implement footer in new design (#2540)

* [redesign] implement new toolbar design (#2524)

* implement new toolbar design

* add `caller` argument for better errors

* [redesign] implement sidebar (#2543)

* implement sidebar in new design

* simplify callback

* [redesign] implement new design for history plugin (#2571)

* add icons

* don't invoce callback when programmatically change resizable element

* implement history in new design

* visually separate favourite history items

* add save button when editing history label

* add changeset

* add missing changesets in retrospect

* fix typos

* fix e2e tests

* remove input outline

* add prerelease versions

* fix opening doc explorer when clicking references (#2578)

* extract loading spinner to `@graphiql/react` (#2581)

* [redesign] move docs components to `@graphiql/react` (#2582)

* move explorer context into folder

* move `TypeLink` component to `@graphiql/react`

* move `FieldLink` component to `@graphiql/react`

* move `DefaultValue` component to `@graphiql/react`

* move `Directive` component to `@graphiql/react`

* extract `MarkdownContent` component in `@gaphiql/react`

* move `Argument` component to `@graphiql/react`

* combine and extend changesets

* add `Search` component to `@graphiql/react` (#2586)

* move remaining doc explorer component to `@graphiql/react` (#2587)

* [redesign] docs (#2588)

* add icons

* add `Button` component to `@graphiql/react`

* add explorer section component

* redesign `SchemaDocumentation` component

* redesign `TypeDocumentation` component

* redesign `FieldDocumentation` component

* redesign `DocExplorer` component

* extend changeset message

* move tab components to `@graphiql/react` (#2591)

* [redesign] implement new design for tabs (#2592)

* implement new design for tabs

* add back `tab` role

* increment versions from release

* [redesign] add settings dialog (#2595)

* add `Dialog` component to `@graphiql/react`

* add a `clear` method to the `Storage` type

* add success and failure states to `Button` component

* add settings dialog

* make sure to show dialog above editor scrollbars

* [redesign] add dark mode (#2596)

* add `ButtonGroup` component to `@graphiql/react`

* dark mode

* add back styles for editor search (#2599)

* add a dialog that shows all available shortkeys (#2601)

* add a dialog that shows all available shortkeys

* use table in short key dialog

* add shortkey for introspection

* add link to codemirror keymaps

* make dropdown menu accessible (#2627)

* fix doc explorer style regressions (#2630)

* fix selector specificity for link styling

* leverage nesting

* fix hiding the headline on focus

* ensure correct focus outlines and remove visited styles

* increment next versions

* adds styles to contain the result window above any footer content (#2621)

* adds styles to contain the result window above any footer content

* simplifies flex value

* use hsl values and reduce number of CSS variables (#2637)

* rename CSS variables for colors (#2641)

* forward refs and props for UI components (#2628)

* [redesign] implement toolbar menu and select in new design (#2631)

* implement toolbar menu in new design

* implement `ToolbarListbox` in new design

* better tooltips

* [v2] cleanup `GraphiQL` component (#2632)

* remove deprecated class methods

* remove utilities

* remove ref forwarding

* refactor inner class component to a function component

* merge main component with context consumer component

* remove component statics

* refactor outer component to be a class component

* remove comments

* add changeset

* remove legacy exports

* [v2] add provider component and deduplicate prop type definitions (#2650)

* add `GraphiQLProvider` to `@graphiql/react` and include `StorageContextProvider`

* add `HistoryContextProvider` to `GraphiQLProvider`

* add `EditorContextProvider` to `GraphiQLProvider`

* add `SchemaContextProvider` to `GraphiQLProvider`

* add `ExecutionContextProvider` to `GraphiQLProvider`

* move `ExplorerContextProvider` to `GraphiQLProvider`

* declare props for `GraphiQLInterface`

* reuse prop definitions from editor components

* merge props for default state of editor tools

* rename prop for toggling headers editor

* re-export GraphiQL provider

* add documention for `@graphiql/react` (#2657)

* add JSDocs for component props and hooks

* add JSDocs for context types

* add README for `@graphiql/react`

* [v2] add plugin api for docs and history (#2674)

* add plugin api for docs and history

* throw error when plugin has no title

* make popover styles look good in dark mode (#2682)

* add example for `graphiql-explorer` (#2683)

* don't pass `shouldPersistHeaders` to fetcher anymore (#2684)

* bump preview versions

* overhaul READMEs and add migratio guide for `graphiql@2`

Co-authored-by: Rikki Schulte <[email protected]>
Co-authored-by: Jonathan Brennan <[email protected]>
thomasheyenbrock added a commit that referenced this pull request Aug 24, 2022
* implement sidebar in new design

* simplify callback
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants