From cf55cf8853ce03ac3fb030afd20f75eac4f71a2f Mon Sep 17 00:00:00 2001 From: Gennady Grishkovtsov Date: Thu, 9 Aug 2018 22:14:12 +0300 Subject: [PATCH] Refactor components --- src/components/icon-button.vue | 63 +------ src/components/line-control.vue | 31 ++-- .../{record-player.vue => player.vue} | 175 ++++++++++-------- .../recorder.vue} | 54 +++--- src/components/volume-control.vue | 60 ++++++ src/index.js | 15 +- src/scss/icons.scss | 45 +++++ 7 files changed, 265 insertions(+), 178 deletions(-) rename src/components/{record-player.vue => player.vue} (57%) rename src/{audio-recorder.vue => components/recorder.vue} (84%) create mode 100644 src/components/volume-control.vue create mode 100644 src/scss/icons.scss diff --git a/src/components/icon-button.vue b/src/components/icon-button.vue index 5cff27d..e42858f 100644 --- a/src/components/icon-button.vue +++ b/src/components/icon-button.vue @@ -1,65 +1,11 @@ - - diff --git a/src/components/line-control.vue b/src/components/line-control.vue index 8267428..ed1d489 100644 --- a/src/components/line-control.vue +++ b/src/components/line-control.vue @@ -1,6 +1,9 @@ diff --git a/src/index.js b/src/index.js index cde6a86..c80e226 100644 --- a/src/index.js +++ b/src/index.js @@ -1,13 +1,22 @@ -import AudioRecorder from './audio-recorder.vue' +import AudioPlayer from './components/player.vue' +import AudioRecorder from './components/recorder.vue' -export default { - install: function (Vue) { +const components = { + AudioPlayer, + AudioRecorder, + + install (Vue) { if (this.installed) { return } this.installed = true + Vue.component('audio-player', AudioPlayer) Vue.component('audio-recorder', AudioRecorder) } } + +export default components + +export { AudioPlayer, AudioRecorder } diff --git a/src/scss/icons.scss b/src/scss/icons.scss new file mode 100644 index 0000000..cc3394e --- /dev/null +++ b/src/scss/icons.scss @@ -0,0 +1,45 @@ +.ar-icon { + fill: #747474; + border-radius: 50%; + border: 1px solid #05CBCD; + background-color: #FFFFFF; + padding: 5px; + cursor: pointer; + transition: .2s; + + &--rec { + fill: white; + background-color: #FF6B64; + border-color: transparent; + } + + &--pulse { + animation: ripple .5s linear infinite; + + @keyframes ripple { + 0% { + box-shadow: + 0 0 0 0 rgba(red, 0.1), + 0 0 0 1px rgba(red, 0.1), + 0 0 0 5px rgba(red, 0.1); + } + 100% { + box-shadow: + 0 0 0 0 rgba(red, 0.1), + 0 0 0 10px rgba(red, 0.1), + 0 0 0 20px rgba(red, 0); + } + } + } + + &__sm { + width: 30px; + height: 30px; + } + + &__lg { + width: 45px; + height: 45px; + box-shadow: 0 2px 5px 1px rgba(158,158,158,0.5); + } +}