aboutsummaryrefslogtreecommitdiffstats
path: root/web_src/js/features/heatmap.js
diff options
context:
space:
mode:
authorsilverwind <me@silverwind.io>2020-11-18 23:00:16 +0100
committerGitHub <noreply@github.com>2020-11-18 16:00:16 -0600
commit12c2efb45c112baf6013c304c35cbd404f7be21a (patch)
tree2deb1fd0a4c09b048c9e4f262057bfe4cfa774b1 /web_src/js/features/heatmap.js
parentd02c3508e629d854d0094f4562c4cdebfada5962 (diff)
downloadgitea-12c2efb45c112baf6013c304c35cbd404f7be21a.tar.gz
gitea-12c2efb45c112baf6013c304c35cbd404f7be21a.zip
Remove fetch request from heatmap (#13623)
* Remove fetch request from heatmap Render heatmap data directly to HTML, eliminating one HTTP request on frontpage and user profile. Also added min-height to the container so the page content will no longer move after loading. * rename and error display * also log the js error * add error handler * remove useless inline style and hide divider on small screens * Update routers/user/home.go * Update routers/user/profile.go
Diffstat (limited to 'web_src/js/features/heatmap.js')
-rw-r--r--web_src/js/features/heatmap.js23
1 files changed, 23 insertions, 0 deletions
diff --git a/web_src/js/features/heatmap.js b/web_src/js/features/heatmap.js
new file mode 100644
index 0000000000..d1cb43dde0
--- /dev/null
+++ b/web_src/js/features/heatmap.js
@@ -0,0 +1,23 @@
+import Vue from 'vue';
+
+import ActivityHeatmap from '../components/ActivityHeatmap.vue';
+
+export default async function initHeatmap() {
+ const el = document.getElementById('user-heatmap');
+ if (!el) return;
+
+ try {
+ const values = JSON.parse(el.dataset.heatmapData).map(({contributions, timestamp}) => {
+ return {date: new Date(timestamp * 1000), count: contributions};
+ });
+
+ const View = Vue.extend({
+ render: (createElement) => createElement(ActivityHeatmap, {props: {values}}),
+ });
+
+ new View().$mount(el);
+ } catch (err) {
+ console.error(err);
+ el.textContent = 'Heatmap failed to load';
+ }
+}