-
-
Notifications
You must be signed in to change notification settings - Fork 840
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 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>
- Loading branch information
1 parent
1321b8c
commit 71f3379
Showing
127 changed files
with
2,412 additions
and
2,075 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
// Mithril | ||
import * as Mithril from 'mithril'; | ||
import Stream from 'mithril/stream'; | ||
|
||
// Other third-party libs | ||
import * as _dayjs from 'dayjs'; | ||
import * as _$ from 'jquery'; | ||
|
||
// Globals from flarum/core | ||
import Application from './src/common/Application'; | ||
|
||
/** | ||
* Helpers that flarum/core patches into Mithril | ||
*/ | ||
interface m extends Mithril.Static { | ||
prop: typeof Stream; | ||
} | ||
|
||
/** | ||
* Export Mithril typings globally. | ||
* | ||
* This lets us use these typings without an extra import everywhere we use | ||
* Mithril in a TypeScript file. | ||
*/ | ||
export as namespace Mithril; | ||
|
||
/** | ||
* flarum/core exposes several extensions globally: | ||
* | ||
* - jQuery for convenient DOM manipulation | ||
* - Mithril for VDOM and components | ||
* - dayjs for date/time operations | ||
* | ||
* Since these are already part of the global namespace, extensions won't need | ||
* to (and should not) bundle these themselves. | ||
*/ | ||
declare global { | ||
const $: typeof _$; | ||
const m: m; | ||
const dayjs: typeof _dayjs; | ||
} | ||
|
||
/** | ||
* All global variables owned by flarum/core. | ||
*/ | ||
declare global { | ||
const app: Application; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.