|
1 | 1 | <template>
|
2 | 2 | <div class="email-display">
|
| 3 | + <div class="toolbar"> |
| 4 | + <button @click="toggleArchive">{{email.archived ? 'Move to Inbox (e)' : 'Archive (e)'}}</button> |
| 5 | + <button @click="toggleRead">{{email.read ? 'Mark Unread (r)' : 'Mark Read (r)'}}</button> |
| 6 | + <button @click="goNewer">Newer (k)</button> |
| 7 | + <button @click="goOlder">Older (j)</button> |
| 8 | + </div> |
| 9 | + |
3 | 10 | <h2 class="mb-0">Subject: <strong>{{email.subject}}</strong></h2>
|
4 | 11 | <div><em>From {{email.from}} on {{format(new Date(email.sentAt), 'MMM do yyyy')}}</em></div>
|
5 | 12 | <div v-html="marked(email.body)" />
|
|
9 | 16 | <script>
|
10 | 17 | import { format } from 'date-fns';
|
11 | 18 | import marked from 'marked';
|
| 19 | + import { useKeydown } from '../composition/useKeydown'; |
12 | 20 |
|
13 | 21 | export default {
|
14 |
| - setup(){ |
| 22 | + setup({changeEmail}){ |
| 23 | + let toggleArchive = () => changeEmail({toggleArchive: true, save: true, closeModal: true}) |
| 24 | + let toggleRead = () => changeEmail({toggleRead: true, save: true}) |
| 25 | + let goNewer = () => changeEmail({indexChange: -1}) |
| 26 | + let goOlder = () => changeEmail({indexChange: 1}) |
| 27 | + let goNewerAndArchive = () => changeEmail({indexChange: -1, toggleArchive: true}) |
| 28 | + let goOlderAndArchive = () => changeEmail({indexChange: 1, toggleArchive: true}) |
| 29 | +
|
| 30 | + useKeydown([ |
| 31 | + {key: 'e', fn: toggleArchive}, |
| 32 | + {key: 'r', fn: toggleRead}, |
| 33 | + {key: 'k', fn: goNewer}, |
| 34 | + {key: 'j', fn: goOlder}, |
| 35 | + {key: '[', fn: goNewerAndArchive}, |
| 36 | + {key: ']', fn: goOlderAndArchive} |
| 37 | + ]) |
| 38 | +
|
15 | 39 | return {
|
16 | 40 | format,
|
17 |
| - marked |
| 41 | + marked, |
| 42 | + goOlder, |
| 43 | + goNewer, |
| 44 | + toggleRead, |
| 45 | + toggleArchive |
18 | 46 | }
|
19 | 47 | },
|
20 | 48 | props: {
|
21 | 49 | email: {
|
22 | 50 | type: Object,
|
23 | 51 | required: true
|
| 52 | + }, |
| 53 | + changeEmail: { |
| 54 | + type: Function, |
| 55 | + required: true |
24 | 56 | }
|
25 | 57 | }
|
26 | 58 | }
|
|
0 commit comments