keystonejs/keystone-classic 14815
Node.js CMS and web app framework
apollographql/apollo-client 14448
:rocket: A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server
apollographql/react-apollo 6922
:recycle: React integration for Apollo Client
FormidableLabs/urql 4770
The highly customizable and versatile GraphQL client.
jaredpalmer/backpack 4367
🎒 Backpack is a minimalistic build system for Node.js projects.
jaredpalmer/after.js 3752
Next.js-like framework for server-rendered React apps built with React Router 4
draft-js-plugins/draft-js-plugins 3544
React Plugin Architecture for Draft.js including Slack-Like Emojis, FB-Like Mentions and Stickers
apollographql/apollo-cache-persist 915
🎏 Simple persistence for all Apollo Cache implementations
micro-analytics/micro-analytics-cli 742
Public analytics as a Node.js microservice. No sysadmin experience required! 📈
A React component for rendering Markdown with remarkable
issue commentgatsbyjs/gatsby
Styling a component is always undefined (e.g. styled(Button))
Can you share the code that isn't working? This definitely works for me:
const Button - (props) => <button {...props} />
const StyledButton = styled(Button)`
color: blue;
`
https://codesandbox.io/s/elated-montalcini-0tzqg?file=/src/App.js:0-260
comment created time in 20 hours
Pull request review commentgatsbyjs/gatsby
feat(gatsby): Store site metadata
module.exports = async function build(program: IBuildArgs): Promise<void> { ) } + await createServiceLock(program.directory, `metadata`, {+ name: program.sitePackageJson.name,+ sitePath: program.directory,+ lastRun: Date.now(),
Is there a reason why this doesn't include pid, but the develop one does? I'm assuming this doesn't store the pid since it's not a long-lived process, but just wanted to clarify!
comment created time in a day
push eventgatsbyjs/gatsby
commit sha 0053d24e48d0dff73fd513425d22fe081672f711
feat(gatsby-recipes): add sitemetadata provider (#26160) * feat(gatsby-recipes): add sitemetadata provider * Fix format of sitemetadata provider * Make setting sitemetadata fields work * Fix falsy values * Fix non-existant sitemetadata erroring out * Rename and cleanup filename * Add e2e test, handle other JSON parsing edge cases Co-authored-by: John Otander <[email protected]> Co-authored-by: gatsbybot <[email protected]>
push time in a day
PR merged gatsbyjs/gatsby
- [x] Read sitemetadata as an object (similar to plugin options)
- [x] Edit any field in the sitemetadata
- [x] Delete any field in the sitemetadata
- [x] Add any field to the sitemetadata
Closes #26155, [ch12800], [ch26160]
pr closed time in a day
issue closedgatsbyjs/gatsby
Expose siteMetadata from recipes API
We are going to need a new provider in the Recipes API that exposes the siteMetadata of a certain site and lets us edit it for Admin.
We can likely base that on the plugin options support, since both allow for arbitrary JSON input/output!
cc @johno
closed time in a day
mxstbrpull request commentgatsbyjs/gatsby
chore(gatsby): expose full structured logs over the develop status websocket server
I could not figure out how to un-flake the e2e test, so I commented it out for now to unblock this PR from shipping. (the e2e test didn't exist before this PR anyway)
comment created time in 2 days
pull request commentDefinitelyTyped/DefinitelyTyped
The only downside to this is that the "as" prop is now typed as a string.
Just for clarification, does this mean one can no longer do this?
<StyledComponent as={OtherStyledComponent} />
comment created time in 2 days
push eventgatsbyjs/gatsby
commit sha 2821b980f0fbbf9af04799c84ac1f0356dc9f7b1
Rename and cleanup filename
push time in 2 days
push eventgatsbyjs/gatsby
commit sha 5ebf0bb272fd68863e403f426d65c65ca8cda11a
Temporarily disable flakey e2e test
push time in 2 days
PR opened gatsbyjs/gatsby
- [x] Move plugin configuration modal to separate client-side screen
- [ ] Fetch plugin metadata from some API (similar to plugin directory, which probably uses Algolia)
- [ ] Render readme
Closes #26167
pr created time in 2 days
pull request commentgatsbyjs/gatsby
feat(gatsby): Store site metadata
I reckon we could register in gatsby-cli no matter what command is run, right?
comment created time in 4 days
push eventstyled-components/styled-components-website
commit sha 6cff074c05dec29ab35bb648d5c42369dfb29c41
Fix similarweb global rank for Airbnb The airbnb project that uses s-c actually has a similarweb global rank of 341439
push time in 5 days
created taggatsbyjs/gatsby
Build blazing fast, modern apps and websites with React
created time in 5 days
created taggatsbyjs/gatsby
Build blazing fast, modern apps and websites with React
created time in 5 days
push eventgatsbyjs/gatsby
commit sha feedd1fa4a4c41f1eb097d71ec6707f007771948
chore(release): Publish - [email protected] - [email protected]
push time in 5 days
created taggatsbyjs/gatsby
Build blazing fast, modern apps and websites with React
created time in 5 days
created taggatsbyjs/gatsby
Build blazing fast, modern apps and websites with React
created time in 5 days
push eventgatsbyjs/gatsby
commit sha 2f61ef94c119abc6aa96895043b1a07889efeecf
chore(release): Publish - [email protected] - [email protected]
push time in 5 days
push eventgatsbyjs/gatsby
commit sha 157bf79ad4afbbdcea0274fc13d9af18a5588c2a
chore(release): Publish - [email protected] - [email protected]
push time in 5 days
created taggatsbyjs/gatsby
Build blazing fast, modern apps and websites with React
created time in 5 days
created taggatsbyjs/gatsby
Build blazing fast, modern apps and websites with React
created time in 5 days
push eventgatsbyjs/gatsby
commit sha 471cb04bacb0bdfc1788263c471129ac54d41de1
chore(release): Publish - [email protected] - [email protected]
push time in 5 days
created taggatsbyjs/gatsby
Build blazing fast, modern apps and websites with React
created time in 5 days
created taggatsbyjs/gatsby
Build blazing fast, modern apps and websites with React
created time in 5 days
push eventgatsbyjs/gatsby
commit sha 23e6e9bfb4c6f6dde8f380eb15b754411004800c
chore(release): Publish - [email protected] - [email protected]
push time in 5 days
created taggatsbyjs/gatsby
Build blazing fast, modern apps and websites with React
created time in 5 days
created taggatsbyjs/gatsby
Build blazing fast, modern apps and websites with React
created time in 5 days
created taggatsbyjs/gatsby
Build blazing fast, modern apps and websites with React
created time in 5 days
created taggatsbyjs/gatsby
Build blazing fast, modern apps and websites with React
created time in 5 days
push eventgatsbyjs/gatsby
commit sha e9c1f813bc54c835e3804a194327d5d48d5a9583
chore(release): Publish - [email protected] - [email protected] - [email protected]
push time in 5 days
push eventgatsbyjs/gatsby
commit sha 1c5d8e93f0c760d3f36ce1c65a7b0faa4cbb30b9
feat(gatsby-admin): new navbar design (#26159) * feat(gatsby-admin): new navbar design * Update yarn.lock * graphiql
push time in 5 days
PR merged gatsbyjs/gatsby

Notes:
- I changed the wording of "Need help?" to "Send feedback" as we don't have any authentication and thus can't reply to people.
- I have no idea how we're going to show the favicon. If folks have png (or even svg) favicons they could be at any location, we'd have to fetch the
index.htmland then parse the HTML for the<link rel="icon" />or something? :confused:
[ch12797] Closes #26129
pr closed time in 5 days
issue closedgatsbyjs/gatsby
Align navbar styling with new design
The navbar styling has changed completely. I adapted the existing one slightly in #26124, but we need to work on actually restyling it.
I have two known unknowns: I have no clue how to fetch the favicon for the currently running site, and I'm not sure if the recipes API exposes the siteMetadata yet or if we need to write a provider for that!
closed time in 5 days
mxstbrPull request review commentgatsbyjs/gatsby
feat(gatsby): Store site metadata
export const createServiceLock = async ( export const getService = async ( programPath: string,- serviceName: string-): Promise<string | null> => {+ serviceName: string,+ ignoreLockfile: boolean = false
I meant from the outside 😅
comment created time in 5 days
push eventgatsbyjs/gatsby
commit sha 32c3e8e7848497ba377cb26aafbf48b1ab85484e
fix: headings in plugin authoring study post failing linter (#26150)
commit sha a86658e5e34af88ae2138f35592e3d92c3051dfa
fix(blog): i18n themes - link to discord, indentions in diff, filename in code fences (#26103)
commit sha c1110b3fc827238907b2fb0e80d59487a68bb621
feat(gatsby-admin): add modal to manage plugin (#26154) * very rough, includes initial query * very rough, includes initial query * feat(gatsby-admin): add modal to manage plugin * Add loading states * Delete unused file * Show errors in UI Co-authored-by: Laurie Barth <[email protected]>
commit sha 682a3272008c31899ee873dad6eacfbaae64f53a
Merge branch 'master' into admin/navbar
push time in 5 days
push eventgatsbyjs/gatsby
commit sha c1110b3fc827238907b2fb0e80d59487a68bb621
feat(gatsby-admin): add modal to manage plugin (#26154) * very rough, includes initial query * very rough, includes initial query * feat(gatsby-admin): add modal to manage plugin * Add loading states * Delete unused file * Show errors in UI Co-authored-by: Laurie Barth <[email protected]>
push time in 5 days
PR merged gatsbyjs/gatsby
This is what it looks like for now:

Closes #26126, [ch12760]
pr closed time in 5 days
issue closedgatsbyjs/gatsby
Implement editing plugin options as JSON
Each plugin should have a modal or page with an input that lets users edit the options of a plugin as JSON.
TBD whether this already works with the Recipes API or if we need to add support for it in a provider!
closed time in 5 days
mxstbrpull request commentgatsbyjs/gatsby
feat(gatsby-recipes): add sitemetadata provider
I tried adding a test file, but the test suite utils don't seem to work with this specific provider and I couldn't figure out why :confused:
comment created time in 5 days
Pull request review commentgatsbyjs/gatsby
feat(gatsby-recipes): add sitemetadata provider
+const fs = require(`fs-extra`)+const path = require(`path`)+const babel = require(`@babel/core`)+const declare = require(`@babel/helper-plugin-utils`).declare+const Joi = require(`@hapi/joi`)+const prettier = require(`prettier`)++const getDiff = require(`../utils/get-diff`)+const resourceSchema = require(`../resource-schema`)++const isDefaultExport = require(`./utils/is-default-export`)+const getObjectFromNode = require(`./utils/get-object-from-node`)+const { REQUIRES_KEYS } = require(`./utils/constants`)+const template = require(`@babel/template`).default++const addFieldToSiteMetadata = (src, { name, value }) => {+ const addPlugins = new BabelPluginSetSiteMetadataField({+ key: name,+ value,+ })++ const { code } = babel.transform(src, {+ plugins: [addPlugins.plugin],+ configFile: false,+ })++ return code+}++const removeFieldFromSiteMetadata = (src, { name }) => {+ const addPlugins = new BabelPluginSetSiteMetadataField({+ key: name,+ value: undefined,+ })++ const { code } = babel.transform(src, {+ plugins: [addPlugins.plugin],+ configFile: false,+ })++ return code+}++const getSiteMetdataFromConfig = src => {+ const getSiteMetadata = new BabelPluginGetSiteMetadataFromConfig()++ babel.transform(src, {+ plugins: [getSiteMetadata.plugin],+ configFile: false,+ })++ return getSiteMetadata.state+}++const getConfigPath = root => path.join(root, `gatsby-config.js`)++const readConfigFile = async root => {+ let src+ try {+ src = await fs.readFile(getConfigPath(root), `utf8`)+ } catch (e) {+ if (e.code === `ENOENT`) {+ src = `/**+ * Configure your Gatsby site with this file.+ *+ * See: https://www.gatsbyjs.org/docs/gatsby-config/+ */++module.exports = {+ plugins: [],+}`+ } else {+ throw e+ }+ }++ return src+}++const create = async ({ root }, { name, value }) => {+ const configSrc = await readConfigFile(root)+ const prettierConfig = await prettier.resolveConfig(root)++ let code = addFieldToSiteMetadata(configSrc, { name, value })+ code = prettier.format(code, { ...prettierConfig, parser: `babel` })++ await fs.writeFile(getConfigPath(root), code)++ return await read({ root }, name)+}++const read = async ({ root }, id) => {+ try {+ const configSrc = await readConfigFile(root)++ const siteMetadata = getSiteMetdataFromConfig(configSrc)++ if (!siteMetadata || typeof siteMetadata[id] === undefined) return null++ return {+ name: id,+ value: JSON.stringify(siteMetadata[id]),+ }+ } catch (e) {+ console.log(e)+ throw e+ }+}++const destroy = async ({ root }, resource) => {+ const configSrc = await readConfigFile(root)++ const newSrc = removeFieldFromSiteMetadata(configSrc, resource)++ await fs.writeFile(getConfigPath(root), newSrc)+}++class BabelPluginSetSiteMetadataField {+ constructor({ key, value }) {+ this.plugin = declare(api => {+ api.assertVersion(7)++ return {+ visitor: {+ ExpressionStatement(path) {+ const { node } = path+ const { left, right } = node.expression++ if (!isDefaultExport(left)) {+ return+ }++ const siteMetadata = right.properties.find(+ p => p.key.name === `siteMetadata`+ )++ if (!siteMetadata || !siteMetadata.value) return++ const siteMetadataObj = getObjectFromNode(siteMetadata.value)++ const newSiteMetadataObj = {+ ...siteMetadataObj,+ [key]: typeof value === `string` ? JSON.parse(value) : value,+ }++ const newSiteMetadataTemplate = template(`+ const foo = ${JSON.stringify(newSiteMetadataObj, null, 2)}+ `)()++ const newSiteMetadata = newSiteMetadataTemplate.declarations[0].init
We control the code that is parsed (the const foo thing), so we know this will always exist! 👍
comment created time in 5 days
Pull request review commentgatsbyjs/gatsby
feat(gatsby-recipes): add sitemetadata provider
+const fs = require(`fs-extra`)+const path = require(`path`)+const babel = require(`@babel/core`)+const declare = require(`@babel/helper-plugin-utils`).declare+const Joi = require(`@hapi/joi`)+const prettier = require(`prettier`)++const getDiff = require(`../utils/get-diff`)+const resourceSchema = require(`../resource-schema`)++const isDefaultExport = require(`./utils/is-default-export`)+const getObjectFromNode = require(`./utils/get-object-from-node`)+const { REQUIRES_KEYS } = require(`./utils/constants`)+const template = require(`@babel/template`).default++const addFieldToSiteMetadata = (src, { name, value }) => {+ const addPlugins = new BabelPluginSetSiteMetadataField({+ key: name,+ value,+ })++ const { code } = babel.transform(src, {+ plugins: [addPlugins.plugin],+ configFile: false,+ })++ return code+}++const removeFieldFromSiteMetadata = (src, { name }) => {+ const addPlugins = new BabelPluginSetSiteMetadataField({
Nope! 👍
comment created time in 5 days
issue openedgatsbyjs/gatsby
Add UI to the Gatsby site itself that highlights the existence of Admin
Maybe something similar to the WordPress top bar or some kind of floating action button or something that reminds people that Admin exists and makes it only be a click away!
Needs to be configurable (through gatsby-config.js and thus Admin in the UI :wink:) so people can turn it off!
created time in 5 days
issue openedgatsbyjs/gatsby
Build search/installation interface for plugins that includes the readme
Similar to the plugin directory, if one can install and configure plugins in Admin people need to be able to figure out what the possible options are.
Since we don't have a schema for the options and can't show that in the UI, we should show the documentation (i.e. the README) for the plugin in the configuration interface.
This will need some design work as to what that exactly looks like.
created time in 5 days
issue openedgatsbyjs/gatsby
Once we know which plugins we want to recommend (#26165), we gotta build the interface for showing and installing them!
created time in 5 days
issue openedgatsbyjs/gatsby
Define initial static list of recommended plugins in Admin
I think there’s a big opportunity for us to recommend plugins not many people are using but should. I.e. not gatsby-source-filesystem, but the real hidden gems that almost everyone should use.
We’re going to have to be careful about what we recommend, with great power comes great responsibility, but it’s a big opportunity.
We might be able to use the answers to this tweet as a source: https://twitter.com/GatsbyJS/status/1288904321493606402
created time in 5 days
push eventgatsbyjs/gatsby
commit sha ac9df0c1bf0586664053d399ef8dd45ac5d1ac33
graphiql
push time in 5 days
push eventgatsbyjs/gatsby
commit sha 35ed20a7e951ecf9be35badcc5a538c7e7139139
Show errors in UI
push time in 5 days
Pull request review commentgatsbyjs/gatsby
feat(gatsby): Store site metadata
export const createServiceLock = async ( export const getService = async ( programPath: string,- serviceName: string-): Promise<string | null> => {+ serviceName: string,+ ignoreLockfile: boolean = false
Doesn't look like the new parameter is used anywhere? 🤔
comment created time in 5 days
pull request commentgatsbyjs/gatsby
feat(gatsby-recipes): add sitemetadata provider
Lint failure is from a blogpost in master, unrelated to this PR.
Checking formatting...
docs/blog/2019-04-25-plugin-authoring-study/index.md
Code style issues found in the above file(s). Forgot to run Prettier?
comment created time in 5 days
push eventgatsbyjs/gatsby
commit sha f9c3e9fc5ab0c91f939875858f1e765748061872
Fix non-existant sitemetadata erroring out
push time in 5 days
push eventgatsbyjs/gatsby
commit sha ce49ddc41dcadcca38f49665022163b606d13c4e
Fix falsy values
push time in 5 days
push eventgatsbyjs/gatsby
commit sha f5ac033bc0f3a083da6a919159fa859842905157
Make setting sitemetadata fields work
push time in 5 days
push eventgatsbyjs/gatsby
commit sha 43f4ebb8e0b9fdac7cc0ed0edb594b6ad698637c
Fix format of sitemetadata provider
push time in 5 days
PR opened gatsbyjs/gatsby
- [x] Read sitemetadata as an object (similar to plugin options)
- [ ] Edit any field in the sitemetadata
- [ ] Delete any field in the sitemetadata
- [ ] Add any field to the sitemetadata
- [ ] Plan any change with a diff
Closes #26155, [ch12800]
pr created time in 5 days
pull request commentgatsbyjs/gatsby
feat(gatsby-admin): new navbar design
Lint error is in a blogpost that was not edited in this PR, same error exists in master.
comment created time in 5 days
PR opened gatsbyjs/gatsby

Note that I changed the wording of "Need help?" to "Send feedback" as we don't have any authentication and thus can't reply to people.
[ch12797] Closes #26129
pr created time in 5 days
push eventgatsbyjs/gatsby
commit sha ad424a8860386bf2070f404e1fbae8c7adc15e74
Update yarn.lock
push time in 5 days
issue openedgatsbyjs/gatsby
Add ability to edit site metadata
Maybe we start with simply the name of the site, but we could also add all other fields that are supported in siteMetadata once we have #26155!
created time in 5 days
issue openedgatsbyjs/gatsby
Expose siteMetadata from recipes API
We are going to need a new provider in the Recipes API that exposes the siteMetadata of a certain site and lets us edit it for Admin.
We can likely base that on the plugin options support, since both allow for arbitrary JSON input/output!
cc @johno
created time in 5 days
push eventgatsbyjs/gatsby
commit sha aa6b0c9ef7c542555d943d71eba8090e78eec3ed
Delete unused file
push time in 5 days
push eventgatsbyjs/gatsby
commit sha 230359dd34f3dd1d174e1b04be9800cb04236bf6
Add loading states
push time in 5 days
PR opened gatsbyjs/gatsby
This is what it looks like for now:

Closes #26126, [ch12760]
pr created time in 5 days
push eventgatsbyjs/gatsby
commit sha 91f0506f4351a7de2df8a658d70c987b91f0c9e3
feat(gatsby-admin): add modal to manage plugin
push time in 5 days
PR opened gatsby-inc/gatsby-interface
The Text component hardcodes the use of the "system" font stack. This unfortunately means that to globally use a different font family we have to override it in the theme like so:
const theme = {
...baseTheme,
fonts: {
...baseTheme.fonts,
system: '...other fonts...'
}
}
But then manually using fontFamily: 'system' no longer shows system fonts. That is really confusing! :confused:
Instead, this PR changes the Text component to use the "body" font stack, which is aliased to "system" by default anyway, so no behavior changes. We can then adjust that font stack without anything being confusing! :tada:
const theme = {
...baseTheme,
fonts: {
...baseTheme.fonts,
body: '...other fonts...'
}
}
pr created time in 5 days
push eventgatsbyjs/gatsby
commit sha 12ac4905c62e62c1fb750725111ed8c683dd16ae
Fix contrast issues
push time in 6 days
pull request commentgatsbyjs/gatsby
feat(admin): new dashboard design
Accessibility review is showing me the color contrast for the grey font on top of the chosen background color is not enough though. Can we fix that?
Yep I saw the same thing and meant to left a comment in Figma for Nachi about it but forgot! Done that now 👍
comment created time in 6 days
issue openedgatsbyjs/gatsby
We need to add a page detail view for every page in a Gatsby site that shows:
- Where the page was sourced (/pages, gatsby-node, source plugin, CMS, etc.)
- A preview of the page (probably an iframe as I experimented with in #25637?)
- A link to GraphiQL for each of the pageQueries (stretch goal?)
We already have the data for 1. (#26104) and 2., however we don't have the data for 3. yet. I'm not sure if the Gatsby core API exposes that information?
created time in 6 days
issue openedgatsbyjs/gatsby
Once we have a design, we need to make Admin's /pages actually look good :wink:
created time in 6 days
issue openedgatsbyjs/gatsby
Align navbar styling with new design
The navbar styling has changed completely. I adapted the existing one slightly in #26124, but we need to work on actually restyling it.
I have two known unknowns: I have no clue how to fetch the favicon for the currently running site, and I'm not sure if the recipes API exposes the siteMetadata yet or if we need to write a provider for that!
created time in 6 days
PR opened jsumnersmith/jsumnersmith.com
Spotted while reading! :bow:
pr created time in 6 days
push eventmxstbr/jsumnersmith.com
commit sha 8a8ea3758186a573a6406126b95275ee5bed9459
Fix typo in 2019.mdx (accesible => accessible) Spotted while reading! :bow:
push time in 6 days
Gatsby version of jsumnersmith.com
fork in 6 days
issue openedgatsbyjs/gatsby
We need to track some basic usage statistics for Admin and various actions performed within. Going to defer to @jsumnersmith on which specific actions we should to track!
created time in 6 days
issue openedgatsbyjs/gatsby
Implement editing plugin options as JSON
Each plugin should have a modal or page with an input that lets users edit the options of a plugin as JSON.
TBD whether this already works with the Recipes API or if we need to add support for it in a provider!
created time in 6 days
Pull request review commentgatsbyjs/gatsby
feat(gatsby-recipes): add recipes gui
-const React = require(`react`)-const { Suspense } = require(`react`)+import React, { Suspense, useContext, useState } from "react"+import Queue from "p-queue"+import lodash from "lodash" -const resources = require(`../resources`)+import resources from "../resources" -const RecipesReconciler = require(`./reconciler`)-const ErrorBoundary = require(`./error-boundary`)-const transformToPlan = require(`./transform-to-plan-structure`)+import RecipesReconciler from "./reconciler"+import ErrorBoundary from "./error-boundary"+import transformToPlan from "./transform-to-plan-structure"+import {+ ParentResourceProvider,+ useParentResourceContext,+} from "./parent-resource-provider"+import { useRecipeStep } from "./step-component"+import { InputProvider } from "./input-provider"+import { ResourceProvider, useResourceContext } from "./resource-provider" -const promises = []-const errors = []-const cache = new Map()+const queue = new Queue({ concurrency: 5, autoStart: false })++let errors = []+const resultCache = new Map()+const inFlightCache = new Map()++const ModeContext = React.createContext({})+const useMode = () => useContext(ModeContext)+const ModeProvider = ModeContext.Provider++const getInvalidProps = errors => {+ const invalidProps = errors.filter(e => {+ const details = e.details+ const unknownProp = details.find(e => e.type === `object.allowUnknown`)+ return unknownProp+ })+ return invalidProps+} const getUserProps = props => { // eslint-disable-next-line const { mdxType, children, ...userProps } = props return userProps } -const Wrapper = ({ children }) => (- <ErrorBoundary>- <Suspense fallback={<p>Loading recipe...</p>}>{children}</Suspense>- </ErrorBoundary>-)+const SetResourcesProvider = React.createContext() -const ResourceComponent = ({ _resourceName: Resource, ...props }) => {- const userProps = getUserProps(props)+let resourcesCache++const Wrapper = ({ children, inputs, isApply }) => {+ const [resourcesList, setResources] = useState(resourcesCache || [])+ resourcesCache = resourcesList return (- <Suspense fallback={<p>Reading resource...</p>}>+ <ErrorBoundary>+ <ModeProvider value={{ mode: isApply ? `apply` : `plan` }}>+ <SetResourcesProvider.Provider value={setResources}>+ <ResourceProvider value={resourcesList}>+ <InputProvider value={inputs}>+ <Suspense fallback={<p>Loading recipe...</p>}>+ {children}+ </Suspense>+ </InputProvider>+ </ResourceProvider>+ </SetResourcesProvider.Provider>+ </ModeProvider>+ </ErrorBoundary>+ )+}++const ResourceComponent = ({+ _resourceName: Resource,+ _uuid,+ _type,+ children,+ ...props+}) => {+ const { mode } = useMode()+ const step = useRecipeStep()+ const parentResourceContext = useParentResourceContext()+ const allResources = useResourceContext()++ const setResources = useContext(SetResourcesProvider)+ // TODO add provider onto context+ const resourceData = handleResource(
I think handleResource will always throw an error unless cached, where the thrown value is a Promise? (currently line 213; throw promise). Is this some kind of hack to circumvent having to wait for promises to resolve etc?
I have no context on this code so I don't know if this is right, but this sounds exactly like a React Suspense implementation, in which case React would handle the re-rendering etc. :blush:
comment created time in 6 days
push eventgatsbyjs/gatsby
commit sha a24132162efdc50581a88957d6d56d5d3e8483e8
const Comp => function Comp
push time in 6 days
push eventgatsbyjs/gatsby
commit sha a24eb4d0ff6e8c77c7fde2849b87e65944713bb2
Add alt text to img
push time in 6 days
push eventgatsbyjs/gatsby
commit sha 3eb8ccc9ecc1b06200f0477a8c59a8d746ef6bf8
Iconssss
push time in 6 days
push eventgatsbyjs/gatsby
commit sha f6298a6dc15b1c68cfa92efba0768216bdf31b84
Cleanup "Coming soon"
push time in 6 days
push eventgatsbyjs/gatsby
commit sha b86d5dce8b1686428d1d6711d18df89ffc06d4bb
Fix badge bg
push time in 6 days
push eventgatsbyjs/gatsby
commit sha 3644995512079b10cf7e8ee69aef2f55cb855310
Add illustration
commit sha f3131e4d830ed565657c96ae872758f179a8e52d
Fix typescript
push time in 6 days
push eventgatsbyjs/gatsby
commit sha 4996aeda753ca7e21096b7010f2201fd90fb0057
Add "Coming soon!" for recommended plugins
push time in 6 days
push eventgatsbyjs/gatsby
commit sha 69df1f03ac389c33f38d56bee8600d90414a1fb1
Move global background color to <body>
push time in 6 days
push eventgatsbyjs/gatsby
commit sha 185902ec0aac21465becf9e3dd3afbd1e5e8bc38
Various spacing updates
push time in 6 days
push eventgatsbyjs/gatsby
commit sha 37c8f70ea4028ab2285c40aac45657c662850737
Fix global backgbround
push time in 6 days
push eventgatsbyjs/gatsby
commit sha 752a001aaf1e97102225aba190bdbbd1b7d38fea
Add global layout spacing, update nav a little bit
push time in 6 days
push eventgatsbyjs/gatsby
commit sha 4601e2ca3941ce0617008f306fd0027eeb149883
Fix spacing
push time in 6 days
PR opened gatsbyjs/gatsby
pr created time in 6 days
push eventsystem-ui/theme-ui
commit sha 317f0932bd5f294fbea1e353da9f3bc609db3051
First pass: switch typography to ts
commit sha f148324710100fcef747eb46ab875e36ed53b212
First test TS pass and some fixes after tests
commit sha 4802eb2e4375c3043ddb158ff2e465e7d964e4c7
Typography-ts: Cleaner types and references DT PRs
commit sha e630712fac7118aae35808d7d39db84e5429cf02
remove custom outline from buttons in navbar
commit sha b8c41c4bc2fa8bfbccf5c23c07b629d1bb982fd5
make SkipLink less obtrusive in dark mode
commit sha 3d848598e7f41752811c8c88467ecbebee9d5205
Do not depend on window during setState initialization
commit sha dbd8120335f7e0184ef819dbab6a9fbbde2cbf03
revert SkipLink colors to original
commit sha 65f7cdee0aadcb5f9904def0a15a2d8b82d0fe77
revert Prettier formatting in SkipLink
commit sha 4458fc7e4d264b72d73a3e9ded0c5d698d605d64
Turn ColorMode into an interface and update comment - Interfaces support declaration merging, and thus are superior in this case. An user can add his own color names. The index signature might be removed some day for "strict mode". - The comment is outdated. - Smaller types in tooltips lead to more readable type errors.
commit sha 0c4ad6714f0aacecf6be82540028581799a31659
Move colors scale to separate interface
commit sha e38b48bd2676900e0d6c60b86c16e949de2fda0e
Fix ThemeProvider components prop type
commit sha c43df5c365300ec53e0a8dc63f6f0b881f10f439
Make all ColorMode keys optional and allow unknown keys in ThemeStyles
commit sha 5220be3ec7e6650fa51e9137ec714b12b65d6703
Remove redundant Partial
commit sha 9dce7baf193d9bd83baeccc5a2fd7d360807d108
Add jsx: react to root tsconfig for convenience
commit sha 517fc3554da546ed3706319c8505f2b1817be59e
Fix packages/editor types and use CSS.Properties instead of Fallback
commit sha 607547ebbee89f54b1a0833881d00480f02c5024
Turn theme-ui tests to TypeScript
commit sha 77d5216389610a8b934666552134a568f642f322
Rename SystemStyleObject to ThemeUIStyleObject
commit sha db8e187bf99aa62a4ef797729e97f464f5ba9c73
Support VendorProperties in types
commit sha 9c996f103fca2a35958f0a09558055b03086f0ed
Export ThemeStyles
commit sha ec89341eece1f816e3f1d29c53fd1bc4b22d148d
chore(deps-dev): bump execa from 4.0.0 to 4.0.2 Bumps [execa](https://github.com/sindresorhus/execa) from 4.0.0 to 4.0.2. - [Release notes](https://github.com/sindresorhus/execa/releases) - [Commits](https://github.com/sindresorhus/execa/compare/v4.0.0...v4.0.2) Signed-off-by: dependabot-preview[bot] <[email protected]>
push time in 6 days
push eventgatsbyjs/gatsby
commit sha 3f129590f62289bc8c96d1ebd4b55d7c16ffcc9e
chore(gatsby-admin): move sitemap to /pages (#26120)
push time in 6 days
PR merged gatsbyjs/gatsby
This moves the list of pages to a hidden page at /pages:

pr closed time in 6 days
Pull request review commentgatsbyjs/gatsby
feat(gatsby-recipes): add recipes gui
+const { createServiceLock } = require(`gatsby-core-utils/dist/service-lock`)+const execa = require(`execa`)++const startServer = async () => {+ // Use 50400 as our port as it's a highly composite number! Meaning it has+ // more divisors than any smaller positive integer.+ const port = 50400
Do we need to getRandomPort(50400) here, similar to what we do everywhere else for all behind-the-scenes services?
comment created time in 6 days
PR opened gatsbyjs/gatsby
This copies the favicon from www (gatsbyjs.org) to brand Gatsby Admin a little bit more.
pr created time in 6 days