client: テーマコードをコピーできるようにしたり
This commit is contained in:
		
							parent
							
								
									2d40a15d2b
								
							
						
					
					
						commit
						4b19c53697
					
				
					 2 changed files with 14 additions and 5 deletions
				
			
		|  | @ -557,6 +557,7 @@ wordMute: "ワードミュート" | ||||||
| userSaysSomething: "{name}が何かを言いました" | userSaysSomething: "{name}が何かを言いました" | ||||||
| makeActive: "アクティブにする" | makeActive: "アクティブにする" | ||||||
| display: "表示" | display: "表示" | ||||||
|  | copy: "コピー" | ||||||
| 
 | 
 | ||||||
| _sidebar: | _sidebar: | ||||||
|   full: "フル" |   full: "フル" | ||||||
|  |  | ||||||
|  | @ -55,8 +55,8 @@ | ||||||
| 			<mk-textarea v-model="installThemeCode"> | 			<mk-textarea v-model="installThemeCode"> | ||||||
| 				<span>{{ $t('_theme.code') }}</span> | 				<span>{{ $t('_theme.code') }}</span> | ||||||
| 			</mk-textarea> | 			</mk-textarea> | ||||||
| 			<mk-button @click="() => install(this.installThemeCode)" :disabled="installThemeCode == null" primary inline><fa :icon="faCheck"/> {{ $t('install') }}</mk-button> | 			<mk-button @click="() => install(installThemeCode)" :disabled="installThemeCode == null" primary inline><fa :icon="faCheck"/> {{ $t('install') }}</mk-button> | ||||||
| 			<mk-button @click="() => preview(this.installThemeCode)" :disabled="installThemeCode == null" inline><fa :icon="faEye"/> {{ $t('preview') }}</mk-button> | 			<mk-button @click="() => preview(installThemeCode)" :disabled="installThemeCode == null" inline><fa :icon="faEye"/> {{ $t('preview') }}</mk-button> | ||||||
| 		</details> | 		</details> | ||||||
| 	</div> | 	</div> | ||||||
| 	<div class="_content"> | 	<div class="_content"> | ||||||
|  | @ -68,6 +68,7 @@ | ||||||
| 			<template v-if="selectedTheme"> | 			<template v-if="selectedTheme"> | ||||||
| 				<mk-textarea readonly tall :value="selectedThemeCode"> | 				<mk-textarea readonly tall :value="selectedThemeCode"> | ||||||
| 					<span>{{ $t('_theme.code') }}</span> | 					<span>{{ $t('_theme.code') }}</span> | ||||||
|  | 					<template #desc><button @click="copyThemeCode()" class="_textButton">{{ $t('copy') }}</button></template> | ||||||
| 				</mk-textarea> | 				</mk-textarea> | ||||||
| 				<mk-button @click="uninstall()" v-if="!builtinThemes.some(t => t.id == selectedTheme.id)"><fa :icon="faTrashAlt"/> {{ $t('uninstall') }}</mk-button> | 				<mk-button @click="uninstall()" v-if="!builtinThemes.some(t => t.id == selectedTheme.id)"><fa :icon="faTrashAlt"/> {{ $t('uninstall') }}</mk-button> | ||||||
| 			</template> | 			</template> | ||||||
|  | @ -80,7 +81,6 @@ | ||||||
| import Vue from 'vue'; | import Vue from 'vue'; | ||||||
| import { faPalette, faDownload, faFolderOpen, faCheck, faTrashAlt, faEye } from '@fortawesome/free-solid-svg-icons'; | import { faPalette, faDownload, faFolderOpen, faCheck, faTrashAlt, faEye } from '@fortawesome/free-solid-svg-icons'; | ||||||
| import * as JSON5 from 'json5'; | import * as JSON5 from 'json5'; | ||||||
| import MkInput from '../../components/ui/input.vue'; |  | ||||||
| import MkButton from '../../components/ui/button.vue'; | import MkButton from '../../components/ui/button.vue'; | ||||||
| import MkSelect from '../../components/ui/select.vue'; | import MkSelect from '../../components/ui/select.vue'; | ||||||
| import MkSwitch from '../../components/ui/switch.vue'; | import MkSwitch from '../../components/ui/switch.vue'; | ||||||
|  | @ -88,10 +88,10 @@ import MkTextarea from '../../components/ui/textarea.vue'; | ||||||
| import { Theme, builtinThemes, applyTheme, validateTheme } from '../../scripts/theme'; | import { Theme, builtinThemes, applyTheme, validateTheme } from '../../scripts/theme'; | ||||||
| import { selectFile } from '../../scripts/select-file'; | import { selectFile } from '../../scripts/select-file'; | ||||||
| import { isDeviceDarkmode } from '../../scripts/is-device-darkmode'; | import { isDeviceDarkmode } from '../../scripts/is-device-darkmode'; | ||||||
|  | import copyToClipboard from '../../scripts/copy-to-clipboard'; | ||||||
| 
 | 
 | ||||||
| export default Vue.extend({ | export default Vue.extend({ | ||||||
| 	components: { | 	components: { | ||||||
| 		MkInput, |  | ||||||
| 		MkButton, | 		MkButton, | ||||||
| 		MkSelect, | 		MkSelect, | ||||||
| 		MkSwitch, | 		MkSwitch, | ||||||
|  | @ -192,6 +192,14 @@ export default Vue.extend({ | ||||||
| 			}); | 			}); | ||||||
| 		}, | 		}, | ||||||
| 
 | 
 | ||||||
|  | 		copyThemeCode() { | ||||||
|  | 			copyToClipboard(this.selectedThemeCode); | ||||||
|  | 			this.$root.dialog({ | ||||||
|  | 				type: 'success', | ||||||
|  | 				iconOnly: true, autoClose: true | ||||||
|  | 			}); | ||||||
|  | 		}, | ||||||
|  | 
 | ||||||
| 		parseThemeCode(code) { | 		parseThemeCode(code) { | ||||||
| 			let theme; | 			let theme; | ||||||
| 
 | 
 | ||||||
|  | @ -247,7 +255,7 @@ export default Vue.extend({ | ||||||
| 				key: 'themes', value: themes | 				key: 'themes', value: themes | ||||||
| 			}); | 			}); | ||||||
| 			this.$root.dialog({ | 			this.$root.dialog({ | ||||||
| 				type: 'info', | 				type: 'success', | ||||||
| 				iconOnly: true, autoClose: true | 				iconOnly: true, autoClose: true | ||||||
| 			}); | 			}); | ||||||
| 		}, | 		}, | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue