diff --git a/app/javascript/dashboard/components/ui/TimeAgo.vue b/app/javascript/dashboard/components/ui/TimeAgo.vue
new file mode 100644
index 000000000..c262a8aa0
--- /dev/null
+++ b/app/javascript/dashboard/components/ui/TimeAgo.vue
@@ -0,0 +1,88 @@
+
+
+ {{ timeAgo }}
+
+
+
+
+
diff --git a/app/javascript/dashboard/components/ui/stories/TimeAgo.stories.js b/app/javascript/dashboard/components/ui/stories/TimeAgo.stories.js
new file mode 100644
index 000000000..606b2d1d4
--- /dev/null
+++ b/app/javascript/dashboard/components/ui/stories/TimeAgo.stories.js
@@ -0,0 +1,30 @@
+import TimeAgo from 'dashboard/components/ui/TimeAgo';
+
+export default {
+ title: 'Components/TimeAgo',
+ component: TimeAgo,
+ argTypes: {
+ isAutoRefreshEnabled: {
+ control: {
+ type: 'boolean',
+ },
+ },
+ timestamp: {
+ control: {
+ type: 'text, date, number',
+ },
+ },
+ },
+};
+
+const Template = (args, { argTypes }) => ({
+ props: Object.keys(argTypes),
+ components: { TimeAgo },
+ template: '