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

Calling one-off Queries #19

Closed
quadsurf opened this issue Jan 30, 2018 · 6 comments
Closed

Calling one-off Queries #19

quadsurf opened this issue Jan 30, 2018 · 6 comments
Assignees

Comments

@quadsurf
Copy link

For most queries, the received data is bound to the component's props, so in essence, the app makes the data request, not the user. However, there are times when the user needs to manually make the data request, long after the component has been mounted (i.e. a user performs an inline search request that is not meant to be tied to or handled by, another child component). While for the most part I LOVE Apollo and am very appreciative of their OSS contribution, this is actually one area where they added too many extra steps for the developer... instead of directly supporting this, they came up with a very clunky "workaround" that requires a separate import:
import { withApollo } from 'react-apollo'

So since you're soliciting feedback :-) ... please directly support this instead of creating a clunky work-around for calling one-off/adhoc queries.

@jamesplease
Copy link
Contributor

@quadsurf would client.executeQuery() / client.executeMutation() work for your use case?

@kenwheeler
Copy link
Contributor

I could expose those as wrapped props, I'm assuming you'd be expecting a promise to be returned with the result of the query?

@quadsurf
Copy link
Author

Yes... it would be a lot more convenient that way, thank you... love what you're doing here! I've used your Victory charts before too, great OSS!

@kenwheeler
Copy link
Contributor

Thanks! I'll make it so.

@kenwheeler kenwheeler self-assigned this Feb 2, 2018
@kitten
Copy link
Member

kitten commented May 26, 2018

@kenwheeler I have some concerns around exposing these methods. It'll make the public API on the render props even larger than it already is, and might get us into a situation where we lose some "manoeuvrability" if we change how urql executes queries. In such a case we'd have to reimplement executeQuery just for this API to continue working.

So overall I'd suggest against this and rely on the user being able to call client.executeQuery. Afterall that's just 7 characters more and we won't have to guarantee it 😉

@kitten
Copy link
Member

kitten commented Feb 15, 2019

v1 is released now which means this issue was resolved / is out-of-date 👌

Some docs and a proper announcement for v1 are still in progress in pending. It's completely usable so far but the API has changed, so I have to ask for some more patience, but everything will be ready quite soon ✌️

@kitten kitten closed this as completed Feb 15, 2019
kitten pushed a commit that referenced this issue Feb 14, 2020
Added header text aboce F icon
parkerziegler pushed a commit that referenced this issue Feb 28, 2020
* Add auto-generated tsconfig.json and next-env.d.ts

* Convert components and pages to TypeScript

* Use correct NextContext type

* Point TS compiler to next-urql at root of the repo

* Update example to use our custom NextContext
parkerziegler added a commit that referenced this issue Mar 1, 2020
* Initial commit.

* Check in initial work on README before beginning API rework.

* Add setup for Babel, Rollup, Jest. Begin working on NextJS example.

* Add next.config.js to example. Being to isolate peerDependencies.

* Check in progress on example and rollup config.

* Add bash script to assist in example dependency installation. Add API doscumentation and example README instructions.

* Add Pokemon type icons to example.

* README edits.

* Last cleanup before 0.1.0 publish.

* Check in initial CHANGELOG. Add npm badge to repo.

* Add example CodeSandbox link to repo.

* Improve publishing steps. Add formal LICENSE. Improve documentation. Add TypeScript definitions. (#2)

* Improve publishing steps. Add formal LICENSE. Improve documentation. Add TypeScript definitions.

* Remove declaration: true from tsconfig.

* PR feedback. Improve README language around automatic static optimization. Add CONTRIBUTING.md. Adjust ESLint settings.

* Changes for version 0.1.1

* v0.1.1

* Add support for accessing Next context to configure urql Client. (#4)

* Add support for accessing ctx in withUrqlClient.

* Update TS definitions. Add test of mergeExchanges.

* Add updated documentation on accessing ctx in withUrqlClient. Update CHANGELOG for v0.2.0 release.

* v0.2.0

* Prevent circular structure in getInitialProps. (#7)

* Prevent circular structure in getInitialProps.

* Update TS defs to better match wrapped components that implement their own getInitialProps.

* Final edits to index.d.ts.

* Prepare v0.2.1 release.

* v0.2.1

* Fix first argument type for withUrqlClient (#9)

* Prepare v0.2.2 release.

* v0.2.2

* Fix a few typos in the README.

* Fix support for using withUrqlClient with _app.js. (#13)

* Fix support for using withUrqlClient with _app.js

Co-authored-by: bmathews <brian.mathews@formidable.com>

* Update example READMEs.

* Final adjustments to index.d.ts

Co-authored-by: Brian Mathews <spoonart@gmail.com>

* Prepare v0.2.3 release.

* v0.2.3

* add urqlClient to Page Context (#15)

* add urqlClient to Page Context

* revert import ordering

* add urqClient to PageProps interface in index.d.ts

* move type to NextContextWithAppTree

* Prepare 0.2.4 release.

* Add urqlClient to mocked Next context object.

* v0.2.4

* chore: Convert example `1-with-urql-client` to TypeScript (#19)

* Add auto-generated tsconfig.json and next-env.d.ts

* Convert components and pages to TypeScript

* Use correct NextContext type

* Point TS compiler to next-urql at root of the repo

* Update example to use our custom NextContext

* chore: Convert example `2-with-_app.js` to TypeScript (#21)

* Convert example 2 to TypeScript

* Add `tsconfig.json` and `next-env.d.ts`
* JS -> TS conversion
* Add types for pokemon data
* Add type for Next App
* Refactor pokemon type mapping

* Use AppPropsType from Next

* Upgrade to Next 9 (#22)

* Upgrade to Next 9 (test fixes WIP)

* Remove deprecated `@types/next`
* Add `next@9.1.7` to devDependencies
* Replace `NextComponentClass` | `NextFC` union describing `Page` with
`NextPage`
* Rename `NextContextWithAppTree` to `NextUrqlContext`
* Make `NextUrqlContext` extend `NextPageContext` instead of
`NextContext`

* Import types directly from top-level next

* Coerce mock request object

* Fix withUrqlClient test config

* Coerce ctx into more accurate representation

* Prepare v0.2.5.

* v0.2.5

* Add instructions on using next-urql with ReasonML. (#28)

* Update for missing peer dependencies (#29)

* Add Travis CI. Autogenerate TS defs into dist. Add displayName for development environments. (#30)

* Add Travis CI. Autogenerate TS defs into dist. Add displayName for development environments.

* Fix issues with Rollup not transforming regeneratorRuntime in examples.

* Use correct name for formatting script in CI.

* Add in Buble.

* Preserve displayName in all environments. Add build badge to README.

* Add custom exchange example (#32)

* Add initial custom exchange example

* Remove console log

* Remove serialization of clientOptions in getInitialProps. (#33)

* Remove serialization of clientOptions in getInitialProps.

* Remove unnecessary console.log.

* Remove another console.log.

* Move mockMergeExchanges to upper describe block.

* Move beforeEach rendering component into relevant describe block.

* Remove test stage as Travis explicitly includes it.

* bump react-ssr-prepass to 1.1.2 to fix the suspense bug (#37)

* bump react-ssr-prepass to 1.1.1 to fix the suspense bug

* use 1.1.2 this includes some refactors

* Add better support for _app.js. Move types to separate module. (#38)

* Add better support for _app.js. Move types to separate module.

* Remove unnecessary type casting.

* Fix type issues in tests by relaxing types 😂

* Prepare v0.3.0 release.

* v0.2.0

* v0.3.0

* Demonstrate usage of getInitialProps in _app.js. (#40)

* Clean up old next-urql configs

* Fix build for next-urql

* Add correct next-urql test setup

* Lint next-urql files

* Update CHANGELOG and add changeset to next-urql

* Remove .gitignore in individual files. Edit README.

Co-authored-by: Kyle Alwyn <kjalwyn@gmail.com>
Co-authored-by: Brian Mathews <spoonart@gmail.com>
Co-authored-by: Björn Rave <36173920+BjoernRave@users.noreply.github.com>
Co-authored-by: Ryan Gilbert <ryangilbert7926@gmail.com>
Co-authored-by: Ayhan <ayhankuru@yandex.com.tr>
Co-authored-by: Jovi De Croock <decroockjovi@gmail.com>
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

No branches or pull requests

4 participants