From d08822721153b3a25568ca5d6d0419f5e984898b Mon Sep 17 00:00:00 2001 From: undefined Date: Sat, 19 Mar 2022 11:54:48 +0800 Subject: [PATCH] ui: showSignInDialog if react when not loggedin --- .../ui-default/components/discussion/comments.page.tsx | 6 ++++++ packages/ui-default/misc/Page.ts | 8 ++++---- packages/ui-default/package.json | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/ui-default/components/discussion/comments.page.tsx b/packages/ui-default/components/discussion/comments.page.tsx index f723f3a67..d447f63d1 100644 --- a/packages/ui-default/components/discussion/comments.page.tsx +++ b/packages/ui-default/components/discussion/comments.page.tsx @@ -6,6 +6,7 @@ import { Popover } from '@blueprintjs/core'; import { AutoloadPage } from 'vj/misc/Page'; import CommentBox from 'vj/components/discussion/CommentBox'; import { ConfirmDialog } from 'vj/components/dialog'; +import Notification from 'vj/components/notification'; import delay from 'vj/utils/delay'; import { slideDown, slideUp } from 'vj/utils/slide'; @@ -254,10 +255,15 @@ const commentsPage = new AutoloadPage('commentsPage', () => { $(document).on('click', '[data-op="delete"][data-type="comment"]', onCommentClickDeleteComment); $(document).on('click', '[data-op="delete"][data-type="reply"]', onCommentClickDeleteReply); + const canUseReaction = $('[data-op="react"]').length > 0; $('[data-op="react"]').each((i, e) => { ReactDOM.render(, e); }); $(document).on('click', '.reaction', async (e) => { + if (!canUseReaction) { + (window as any).showSignInDialog(); + return; + } const target = $(e.currentTarget); const res = await request.post('', { operation: 'reaction', diff --git a/packages/ui-default/misc/Page.ts b/packages/ui-default/misc/Page.ts index eba669153..5e6da1e8a 100644 --- a/packages/ui-default/misc/Page.ts +++ b/packages/ui-default/misc/Page.ts @@ -5,8 +5,8 @@ export class Page { autoload = false; afterLoading?: callback; beforeLoading?: callback; - constructor(pagename: string | string[], afterLoading: callback, beforeLoading: callback); - constructor(pagename: string | string[], moduleName: string, afterLoading: callback, beforeLoading: callback); + constructor(pagename: string | string[], afterLoading?: callback, beforeLoading?: callback); + constructor(pagename: string | string[], moduleName: string, afterLoading?: callback, beforeLoading?: callback); constructor(pagename: string | string[], ...args: any[]); constructor(public name: string | string[], ...args: any[]) { if (typeof args[0] === 'string') { @@ -40,8 +40,8 @@ export class Page { export class NamedPage extends Page { } export class AutoloadPage extends Page { - constructor(pagename: string | string[], afterLoading: callback, beforeLoading: callback); - constructor(pagename: string | string[], moduleName: string, afterLoading: callback, beforeLoading: callback); + constructor(pagename: string | string[], afterLoading?: callback, beforeLoading?: callback); + constructor(pagename: string | string[], moduleName: string, afterLoading?: callback, beforeLoading?: callback); constructor(pagename: string | string[], ...args: any[]) { super(pagename, ...args); this.autoload = true; diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index 82d0daae7..5c5e5a6e5 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/ui-default", - "version": "4.34.14", + "version": "4.34.15", "author": "undefined ", "license": "AGPL-3.0", "main": "hydro.js",