Skip to content

Commit

Permalink
chore: export components
Browse files Browse the repository at this point in the history
  • Loading branch information
imorland committed Feb 13, 2024
1 parent 3e2b658 commit ca2cc2e
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 17 deletions.
37 changes: 24 additions & 13 deletions js/src/forum/components/ProviderInfo.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import Component from 'flarum/common/Component';
import type LinkedAccount from '../models/LinkedAccount';
import type Mithril from 'mithril';
import humanTime from 'flarum/common/helpers/humanTime';
import LabelValue from 'flarum/common/components/LabelValue';
import ItemList from 'flarum/common/utils/ItemList';

interface IProviderInfoAttrs {
provider: LinkedAccount;
Expand All @@ -17,7 +19,7 @@ export default class ProviderInfo extends Component<IProviderInfoAttrs> {
<div>
<p className="LinkedAccountsList-item-title">{provider.name()}</p>
<p className="helpText">{app.translator.trans('fof-oauth.forum.user.settings.linked-account.orphaned-account')}</p>
{this.renderDates(provider)}
<div className="LinkedAccountsList">{this.providerInfoItems(provider).toArray()}</div>
</div>
);
}
Expand All @@ -26,7 +28,7 @@ export default class ProviderInfo extends Component<IProviderInfoAttrs> {
return (
<div>
<p className="LinkedAccountsList-item-title">{app.translator.trans(`fof-oauth.forum.providers.${provider.name()}`)}</p>
{this.renderDates(provider)}
<div className="LinkedAccountsList">{this.providerInfoItems(provider).toArray()}</div>
</div>
);
}
Expand All @@ -38,18 +40,27 @@ export default class ProviderInfo extends Component<IProviderInfoAttrs> {
);
}

/**
* Render the created and last used dates for a provider.
*/
renderDates(provider: LinkedAccount): Mithril.Children {
return (
<dl>
<dt className="LinkedAccountsList-item-title">{app.translator.trans('fof-oauth.forum.user.settings.linked-account.link-created-label')}</dt>
<dd className="LinkedAccountsList-item-value">{humanTime(provider.firstLogin())}</dd>
providerInfoItems(provider: LinkedAccount): ItemList<Mithril.Children> {
const items = new ItemList<Mithril.Children>();

items.add(
'firstLogin',
<LabelValue
label={app.translator.trans('fof-oauth.forum.user.settings.linked-account.link-created-label')}
value={humanTime(provider.firstLogin())}
/>,
100
);

<dt className="LinkedAccountsList-item-title">{app.translator.trans('fof-oauth.forum.user.settings.linked-account.last-used-label')}</dt>
<dd className="LinkedAccountsList-item-value">{humanTime(provider.lastLogin())}</dd>
</dl>
items.add(
'lastLogin',
<LabelValue
label={app.translator.trans('fof-oauth.forum.user.settings.linked-account.last-used-label')}
value={humanTime(provider.lastLogin())}
/>,
90
);

return items;
}
}
9 changes: 9 additions & 0 deletions js/src/forum/components/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import LinkStatus from './LinkStatus';
import LinkedAccounts from './LinkedAccounts';
import ProviderInfo from './ProviderInfo';

export const components = {
ProviderInfo,
LinkStatus,
LinkedAccounts,
};
4 changes: 0 additions & 4 deletions js/src/forum/extend.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
import Extend from 'flarum/common/extenders';
import User from 'flarum/common/models/User';
import LinkedAccount from './models/LinkedAccount';
import Forum from 'flarum/common/models/Forum';

export default [
new Extend.Model(User) //
.attribute<string>('loginProvider'),

new Extend.Model(Forum) //
.attribute<boolean>('fofOauthModerate'),

new Extend.Store() //
.add('linked-accounts', LinkedAccount),
];
2 changes: 2 additions & 0 deletions js/src/forum/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import extendLoginSignup from './extenders/extendLoginSignup';

export { default as extend } from './extend';

export * from './components';

app.initializers.add('fof/oauth', () => {
extendLoginSignup();
addLinkedAccountsToUserSecurityPage();
Expand Down
1 change: 1 addition & 0 deletions js/src/forum/models/LinkedAccount.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ export default class LinkedAccount extends Model {
providerIdentifier() {
return Model.attribute<string>('providerIdentifier').call(this);
}

firstLogin() {
return Model.attribute('firstLogin', Model.transformDate).call(this);
}
Expand Down

0 comments on commit ca2cc2e

Please sign in to comment.