mirror of
https://github.com/flarum/framework.git
synced 2024-11-28 20:16:08 +08:00
71f3379fcc
* Update frontend to Mithril 2 - Update Mithril version to v2.0.4 - Add Typescript typings for Mithril - Rename "props" to "attrs"; "initProps" to "initAttrs"; "m.prop" to "m.stream"; "m.withAttr" to "utils/withAttr". - Use Mithril 2's new lifecycle hooks - SubtreeRetainer has been rewritten to be more useful for the new system - Utils for forcing page re-initializations have been added (force attr in links, setRouteWithForcedRefresh util) - Other mechanical changes, following the upgrade guide - Remove some of the custom stuff in our Component base class - Introduce "fragments" for non-components that control their own DOM - Remove Mithril patches, introduce a few new ones (route attrs in <a>; - Redesign AlertManagerState `show` with 3 overloads: `show(children)`, `show(attrs, children)`, `show(componentClass, attrs, children)` - The `affixedSidebar` util has been replaced with an `AffixedSidebar` component Challenges: - `children` and `tag` are now reserved, and can not be used as attr names - Behavior of links to current page changed in Mithril. If moving to a page that is handled by the same component, the page component WILL NOT be re-initialized by default. Additional code to keep track of the current url is needed (See IndexPage, DiscussionPage, and UserPage for examples) - Native Promise rejections are shown on console when not handled - Instances of components can no longer be stored. The state pattern should be used instead. Refs #1821. Co-authored-by: Alexander Skvortsov <sasha.skvortsov109@gmail.com> Co-authored-by: Matthew Kilgore <tankerkiller125@gmail.com> Co-authored-by: Franz Liedke <franz@develophp.org>
40 lines
983 B
JSON
40 lines
983 B
JSON
{
|
|
"private": true,
|
|
"name": "@flarum/core",
|
|
"dependencies": {
|
|
"@babel/preset-typescript": "^7.10.1",
|
|
"@types/mithril": "^2.0.3",
|
|
"bootstrap": "^3.4.1",
|
|
"classnames": "^2.2.5",
|
|
"color-thief-browser": "^2.0.2",
|
|
"dayjs": "^1.8.28",
|
|
"expose-loader": "^0.7.5",
|
|
"flarum-webpack-config": "0.1.0-beta.10",
|
|
"jquery": "^3.4.1",
|
|
"jquery.hotkeys": "^0.1.0",
|
|
"lodash-es": "^4.17.14",
|
|
"m.attrs.bidi": "github:tobscure/m.attrs.bidi",
|
|
"mithril": "^2.0.4",
|
|
"punycode": "^2.1.1",
|
|
"spin.js": "^3.1.0",
|
|
"webpack": "^4.43.0",
|
|
"webpack-cli": "^3.3.11",
|
|
"webpack-merge": "^4.1.4"
|
|
},
|
|
"devDependencies": {
|
|
"husky": "^4.2.5",
|
|
"prettier": "2.0.2"
|
|
},
|
|
"scripts": {
|
|
"dev": "webpack --mode development --watch",
|
|
"build": "webpack --mode production",
|
|
"format": "prettier --write src",
|
|
"format-check": "prettier --check src"
|
|
},
|
|
"husky": {
|
|
"hooks": {
|
|
"pre-commit": "npm run format"
|
|
}
|
|
}
|
|
}
|