DEV: Avoid hard-coding notification types integer in client side code.

Co-authored-by: Bianca Nenciu <nenciu.bianca@gmail.com>
This commit is contained in:
Guo Xiang Tan 2019-06-04 17:09:34 +08:00
parent 0508546fd2
commit fcb7422213
4 changed files with 17 additions and 9 deletions

View File

@ -0,0 +1,3 @@
<% Notification.types.each do |key, value| %>
export const <%= key.upcase %>_TYPE = <%= value %>;
<% end %>

View File

@ -13,10 +13,12 @@ import { setTransientHeader } from "discourse/lib/ajax";
import { userPath } from "discourse/lib/url";
import { iconNode } from "discourse-common/lib/icon-library";
const LIKED_TYPE = 5;
const INVITED_TYPE = 8;
const GROUP_SUMMARY_TYPE = 16;
export const LIKED_CONSOLIDATED_TYPE = 19;
import {
LIKED_TYPE,
INVITEE_ACCEPTED_TYPE,
GROUP_MESSAGE_SUMMARY_TYPE,
LIKED_CONSOLIDATED_TYPE
} from "discourse/widgets/concerns/notification-types";
createWidget("notification-item", {
tagName: "li",
@ -58,7 +60,7 @@ createWidget("notification-item", {
return postUrl(attrs.slug, topicId, attrs.post_number);
}
if (attrs.notification_type === INVITED_TYPE) {
if (attrs.notification_type === INVITEE_ACCEPTED_TYPE) {
return userPath(data.display_username);
}
@ -112,7 +114,7 @@ createWidget("notification-item", {
const scope =
notName === "custom" ? data.message : `notifications.${notName}`;
if (notificationType === GROUP_SUMMARY_TYPE) {
if (notificationType === GROUP_MESSAGE_SUMMARY_TYPE) {
const count = data.inbox_count;
const group_name = data.group_name;
return I18n.t(scope, { count, group_name });

View File

@ -1,12 +1,15 @@
/*jshint maxlen:10000000 */
import { LIKED_CONSOLIDATED_TYPE } from "discourse/widgets/notification-item";
import {
LIKED_CONSOLIDATED_TYPE,
REPLIED_TYPE
} from "discourse/widgets/concerns/notification-types";
export default {
"/notifications": {
notifications: [
{
id: 123,
notification_type: 2,
notification_type: REPLIED_TYPE,
read: false,
post_number: 2,
topic_id: 1234,

View File

@ -1,4 +1,4 @@
import { LIKED_CONSOLIDATED_TYPE } from "discourse/widgets/notification-item";
import { LIKED_CONSOLIDATED_TYPE } from "discourse/widgets/concerns/notification-types";
export default {
"site.json": {