aboutsummaryrefslogtreecommitdiff
path: root/src/components/announcements_page/announcements_page.js
diff options
context:
space:
mode:
authorHJ <30-hj@users.noreply.git.pleroma.social>2022-12-05 15:34:59 +0000
committerHJ <30-hj@users.noreply.git.pleroma.social>2022-12-05 15:34:59 +0000
commit00f4e2049229625f4eeb0df891f31488c8a43905 (patch)
tree5c7d0b2ac25c2d74fe8eba4f7da7e0cbeb49cb18 /src/components/announcements_page/announcements_page.js
parente41edd1bbfa0118a09a49753a39f5a67d48cd5b8 (diff)
parentf3a245f899a8ad2feab1fd72642510af6ab3d874 (diff)
Merge branch 'from/develop/tusooa/announcements' into 'develop'
Announcements See merge request pleroma/pleroma-fe!1466
Diffstat (limited to 'src/components/announcements_page/announcements_page.js')
-rw-r--r--src/components/announcements_page/announcements_page.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/components/announcements_page/announcements_page.js b/src/components/announcements_page/announcements_page.js
new file mode 100644
index 00000000..0bb4892e
--- /dev/null
+++ b/src/components/announcements_page/announcements_page.js
@@ -0,0 +1,55 @@
+import { mapState } from 'vuex'
+import Announcement from '../announcement/announcement.vue'
+import AnnouncementEditor from '../announcement_editor/announcement_editor.vue'
+
+const AnnouncementsPage = {
+ components: {
+ Announcement,
+ AnnouncementEditor
+ },
+ data () {
+ return {
+ newAnnouncement: {
+ content: '',
+ startsAt: undefined,
+ endsAt: undefined,
+ allDay: false
+ },
+ posting: false,
+ error: undefined
+ }
+ },
+ mounted () {
+ this.$store.dispatch('fetchAnnouncements')
+ },
+ computed: {
+ ...mapState({
+ currentUser: state => state.users.currentUser
+ }),
+ announcements () {
+ return this.$store.state.announcements.announcements
+ }
+ },
+ methods: {
+ postAnnouncement () {
+ this.posting = true
+ this.$store.dispatch('postAnnouncement', this.newAnnouncement)
+ .then(() => {
+ this.newAnnouncement.content = ''
+ this.startsAt = undefined
+ this.endsAt = undefined
+ })
+ .catch(error => {
+ this.error = error.error
+ })
+ .finally(() => {
+ this.posting = false
+ })
+ },
+ clearError () {
+ this.error = undefined
+ }
+ }
+}
+
+export default AnnouncementsPage