diff --git a/web/source/settings-panel/admin/emoji.js b/web/source/settings-panel/admin/emoji.js
index d19814f74..e4fff2104 100644
--- a/web/source/settings-panel/admin/emoji.js
+++ b/web/source/settings-panel/admin/emoji.js
@@ -18,6 +18,39 @@
"use strict";
-module.exports = function AdminCustomization() {
- return "custom emoji";
+const Promise = require("bluebird");
+const React = require("react");
+const Redux = require("react-redux");
+
+const api = require("../lib/api");
+const adminActions = require("../redux/reducers/admin").actions;
+
+module.exports = function CustomEmoji() {
+ return (
+ <>
+
Custom Emoji
+
+
+
+
+
Upload
+
+ >
+ );
};
+
+function EmojiOverview() {
+ const dispatch = Redux.useDispatch();
+ const emoji = Redux.useSelector((state) => state.admin.emoji);
+ console.log(emoji);
+
+ React.useEffect(() => {
+ dispatch(api.admin.fetchCustomEmoji());
+ }, []);
+
+ return (
+ <>
+
+ >
+ );
+}
\ No newline at end of file
diff --git a/web/source/settings-panel/lib/api/admin.js b/web/source/settings-panel/lib/api/admin.js
index 8c258f356..67b170f12 100644
--- a/web/source/settings-panel/lib/api/admin.js
+++ b/web/source/settings-panel/lib/api/admin.js
@@ -147,6 +147,16 @@ module.exports = function ({ apiCall, getChanges }) {
return dispatch(apiCall("POST", `/api/v1/admin/media_cleanup?remote_cache_days=${days}`));
});
};
+ },
+
+ fetchCustomEmoji: function fetchCustomEmoji() {
+ return function (dispatch, _getState) {
+ return Promise.try(() => {
+ return dispatch(apiCall("GET", "/api/v1/custom_emojis"));
+ }).then((emoji) => {
+ return dispatch(admin.setEmoji(emoji));
+ });
+ };
}
};
return adminAPI;
diff --git a/web/source/settings-panel/redux/reducers/admin.js b/web/source/settings-panel/redux/reducers/admin.js
index 570c9f75e..07863cf11 100644
--- a/web/source/settings-panel/redux/reducers/admin.js
+++ b/web/source/settings-panel/redux/reducers/admin.js
@@ -43,7 +43,8 @@ module.exports = createSlice({
list: "",
exportType: "plain",
...emptyBlock()
- }
+ },
+ emoji: []
},
reducers: {
setBlockedInstances: (state, { payload }) => {
@@ -86,6 +87,10 @@ module.exports = createSlice({
state.bulkBlock.list = Object.values(state.blockedInstances).map((entry) => {
return entry.domain;
}).join("\n");
+ },
+
+ setEmoji: (state, {payload}) => {
+ state.emoji = payload;
}
}
});
\ No newline at end of file