diff options
| author | Tusooa Zhu <tusooa@kazv.moe> | 2022-03-17 14:54:52 -0400 |
|---|---|---|
| committer | tusooa <tusooa@kazv.moe> | 2022-11-24 18:27:13 -0500 |
| commit | e494e746439e3e622c5b12a182b6c6a9de540821 (patch) | |
| tree | 8e38d8a56bcd65b75ba2a299c1894474049cbaf3 /src/components/announcements_page/announcements_page.js | |
| parent | e5b49ae34b0c750b7b3259044104ebb7e4b872c7 (diff) | |
Implement posting announcements
Diffstat (limited to 'src/components/announcements_page/announcements_page.js')
| -rw-r--r-- | src/components/announcements_page/announcements_page.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/components/announcements_page/announcements_page.js b/src/components/announcements_page/announcements_page.js index a2a218fd..ec038361 100644 --- a/src/components/announcements_page/announcements_page.js +++ b/src/components/announcements_page/announcements_page.js @@ -1,16 +1,44 @@ +import { mapState } from 'vuex' import Announcement from '../announcement/announcement.vue' const AnnouncementsPage = { components: { Announcement }, + data () { + return { + newAnnouncement: { + content: '' + }, + 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) + .catch(error => { + this.error = error.error + }) + .finally(() => { + this.posting = false + }) + }, + clearError () { + this.error = undefined + } } } |
