Skip to content

Instantly share code, notes, and snippets.

@Platekun
Created March 10, 2020 21:49
Show Gist options
  • Save Platekun/a79298909e46a342fcdeec8fb5f5fd5e to your computer and use it in GitHub Desktop.
Save Platekun/a79298909e46a342fcdeec8fb5f5fd5e to your computer and use it in GitHub Desktop.
Generated by XState Viz: https://xstate.js.org/viz
Machine({
id: '@mahou/routing',
type: "parallel",
initial: "A",
states: {
routing: {
initial: "brands",
states: {
"brands": {
"on": {
"BASKET_SHOW_VIEW_ENTERED": "basket./basket",
"BASKET_EDIT_VIEW_ENTERED": "basket./basket/edit",
"BASKET_DELETE_VIEW_ENTERED": "basket./basket/delete",
"ARTICLES_SHOW_VIEW_ENTERED": "admin.articles./admin/articles/:articleId",
"COMMENTS_SHOW_VIEW_ENTERED": "admin.comments./admin/comments/:commentId"
},
"initial": "/brands",
"states": {
"/brands": {
"on": {
"BRANDS_SHOW_VIEW_ENTERED": "/brands/:brandId",
"PRODUCTS_INDEX_VIEW_ENTERED": "products./brands/:brandId/products",
"PRODUCTS_SHOW_VIEW_ENTERED": "products./brands/:brandId/products/:productId"
}
},
"/brands/:brandId": {
"on": {
"BRANDS_INDEX_VIEW_ENTERED": "/brands",
"PRODUCTS_INDEX_VIEW_ENTERED": "products./brands/:brandId/products",
"PRODUCTS_SHOW_VIEW_ENTERED": "products./brands/:brandId/products/:productId"
}
},
"products": {
"on": {
"BRANDS_INDEX_VIEW_ENTERED": "/brands",
"BRANDS_SHOW_VIEW_ENTERED": "/brands/:brandId"
},
"initial": "/brands/:brandId/products",
"states": {
"/brands/:brandId/products": {
"on": {
"PRODUCTS_SHOW_VIEW_ENTERED": "/brands/:brandId/products/:productId"
}
},
"/brands/:brandId/products/:productId": {
"on": {
"PRODUCTS_INDEX_VIEW_ENTERED": "/brands/:brandId/products"
}
}
}
}
}
},
"basket": {
"on": {
"BRANDS_INDEX_VIEW_ENTERED": "brands./brands",
"BRANDS_SHOW_VIEW_ENTERED": "brands./brands/:brandId",
"PRODUCTS_INDEX_VIEW_ENTERED": "brands.products./brands/:brandId/products",
"PRODUCTS_SHOW_VIEW_ENTERED": "brands.products./brands/:brandId/products/:productId",
"ARTICLES_SHOW_VIEW_ENTERED": "admin.articles./admin/articles/:articleId",
"COMMENTS_SHOW_VIEW_ENTERED": "admin.comments./admin/comments/:commentId"
},
"initial": "/basket",
"states": {
"/basket": {
"on": {
"BASKET_EDIT_VIEW_ENTERED": "/basket/edit",
"BASKET_DELETE_VIEW_ENTERED": "/basket/delete"
}
},
"/basket/edit": {
"on": {
"BASKET_SHOW_VIEW_ENTERED": "/basket",
"BASKET_DELETE_VIEW_ENTERED": "/basket/delete"
}
},
"/basket/delete": {
"on": {
"BASKET_SHOW_VIEW_ENTERED": "/basket",
"BASKET_EDIT_VIEW_ENTERED": "/basket/edit"
}
}
}
},
"admin": {
"on": {
"BRANDS_INDEX_VIEW_ENTERED": "brands./brands",
"BRANDS_SHOW_VIEW_ENTERED": "brands./brands/:brandId",
"PRODUCTS_INDEX_VIEW_ENTERED": "brands.products./brands/:brandId/products",
"PRODUCTS_SHOW_VIEW_ENTERED": "brands.products./brands/:brandId/products/:productId",
"BASKET_SHOW_VIEW_ENTERED": "basket./basket",
"BASKET_EDIT_VIEW_ENTERED": "basket./basket/edit",
"BASKET_DELETE_VIEW_ENTERED": "basket./basket/delete"
},
"initial": "articles",
"states": {
"articles": {
"on": {
"COMMENTS_SHOW_VIEW_ENTERED": "comments./admin/comments/:commentId"
},
"initial": "/admin/articles/:articleId",
"states": {
"/admin/articles/:articleId": {
"on": {}
}
}
},
"comments": {
"on": {
"ARTICLES_SHOW_VIEW_ENTERED": "articles./admin/articles/:articleId"
},
"initial": "/admin/comments/:commentId",
"states": {
"/admin/comments/:commentId": {
"on": {}
}
}
}
}
}
}
},
app: {
initial: "unauthenticated",
states: {
unauthenticated: {
on: {
LOGGED_IN: 'authenticated',
}
},
authenticated: {
on: {
LOGGED_OUT: 'unauthenticated',
}
}
}
}
}
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment