Add more changes

This commit is contained in:
Muhsin Keloth
2023-07-05 15:19:20 +05:30
parent 464e0a5d35
commit d61eed7169
3 changed files with 110 additions and 99 deletions

View File

@@ -80,13 +80,19 @@
:show.sync="showAIAssistanceModal"
:on-close="hideAIAssistanceModal"
>
<AIAssistanceModal @close="hideAIAssistanceModal" />
<AIAssistanceModal
@apply-text="insertText"
@close="hideAIAssistanceModal"
/>
</woot-modal>
<woot-modal
:show.sync="showAIAssistanceReply"
:on-close="hideAIAssistanceReplyModal"
>
<AIAssistanceReply @close="hideAIAssistanceReplyModal" />
<AIAssistanceReply
@apply-text="insertText"
@close="hideAIAssistanceReplyModal"
/>
</woot-modal>
</div>
</template>
@@ -184,8 +190,8 @@ export default {
ninja.open({ parent: 'ai_assist' });
},
onAIAssist() {
this.showAIAssistanceModal = true;
// this.showAIAssistanceReply = true;
// this.showAIAssistanceModal = true;
this.showAIAssistanceReply = true;
},
toggleDropdown() {
this.showDropdown = !this.showDropdown;
@@ -202,6 +208,11 @@ export default {
});
}
},
insertText(message) {
console.log('message', message);
this.$emit('replace-text', message);
},
async processEvent(type = 'rephrase') {
this.uiFlags[type] = true;
try {

View File

@@ -16,22 +16,15 @@
AI generated content
</h4>
</div>
<!-- <TypingIndicator /> -->
<div class="animation-container">
<label>AI is typing</label> <span class="loader" />
<div class="animation-container margin-top-1">
<div class="ai-typing--wrap ">
<fluent-icon icon="wand" size="14" class="ai-typing--icon" />
<label>AI is writing</label>
</div>
<span class="loader" />
<span class="loader" />
<span class="loader" />
</div>
<!-- <div class="loading loading04">
<label>AI is typing</label>
<span>.</span>
<span>.</span>
<span>.</span>
</div> -->
<!-- <div v-else>
<p>
{{ aiContent }}
</p>
</div> -->
<div class="modal-footer justify-content-end w-full">
<!-- <woot-button
@@ -61,12 +54,7 @@
</template>
<script>
import TypingIndicator from './TypingIndicator.vue';
export default {
components: {
TypingIndicator,
},
data() {
return {
draftContent:
@@ -109,71 +97,56 @@ export default {
width: 100%;
}
.animation-container {
width: 100%;
.ai-typing--wrap {
display: flex;
align-items: center;
justify-content: flex-start;
label {
width: 8rem;
gap: 4px;
.ai-typing--icon {
color: var(--v-500);
}
}
.loader {
width: 8px;
height: 8px;
border-radius: 50%;
display: block;
.animation-container {
position: relative;
color: #000;
box-sizing: border-box;
animation: animloader 2s linear infinite;
display: flex;
}
@keyframes animloader {
0% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 -2px;
}
25% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 2px;
}
50% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 2px, -38px 0 0 -2px;
}
75% {
box-shadow: 14px 0 0 2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 -2px;
}
100% {
box-shadow: 14px 0 0 -2px, 38px 0 0 2px, -14px 0 0 -2px, -38px 0 0 -2px;
}
.animation-container label {
display: inline-block;
margin-right: 8px;
color: var(--v-400);
}
.loading {
font-weight: 800;
text-align: center;
.loader {
display: inline-block;
width: 6px;
height: 6px;
margin-right: 4px;
margin-top: 12px;
background-color: var(--v-300);
border-radius: 50%;
span {
display: inline-block;
margin: 0 -0.05em;
}
animation: bubble-scale 1.2s infinite;
}
.loading04 {
span {
animation: loading04 0.7s infinite;
@for $i from 1 through 6 {
&:nth-child(#{$i + 1}) {
animation-delay: #{$i * 0.1}s;
}
}
}
.loader:nth-child(2) {
animation-delay: 0.4s;
}
@keyframes loading04 {
.loader:nth-child(3) {
animation-delay: 0.8s;
}
@keyframes bubble-scale {
0%,
100% {
transform: translateY(0);
transform: scale(1);
}
25% {
transform: scale(1.3);
}
50% {
transform: translateY(15px);
transform: scale(1);
}
}
</style>

View File

@@ -2,7 +2,13 @@
<div class="column">
<woot-modal-header header-title="Reply suggestion with AI" />
<form class="row modal-content" @submit.prevent="chooseTime">
<div v-if="!generatedContent" class="animation-container">
<div v-if="!generatedContent" class="animation-container margin-top-1">
<div class="ai-typing--wrap ">
<fluent-icon icon="wand" size="14" class="ai-typing--icon" />
<label>AI is writing</label>
</div>
<span class="loader" />
<span class="loader" />
<span class="loader" />
</div>
@@ -31,7 +37,7 @@
:disabled="!enableButtons"
>Retry
</woot-button> -->
<woot-button :disabled="!enableButtons">
<woot-button :disabled="!enableButtons" @click="applyContent">
Apply
</woot-button>
</div>
@@ -70,6 +76,10 @@ export default {
this.$emit('close');
},
chooseTime() {},
applyContent() {
this.$emit('apply-text', this.generatedContent);
this.$emit('close');
},
},
};
</script>
@@ -83,39 +93,56 @@ export default {
width: 100%;
}
.animation-container {
width: 100%;
.ai-typing--wrap {
display: flex;
align-items: center;
justify-content: center;
}
.loader {
width: 12px;
height: 12px;
border-radius: 50%;
display: block;
margin-top: 2rem;
position: relative;
color: #000;
box-sizing: border-box;
animation: animloader 2s linear infinite;
gap: 4px;
.ai-typing--icon {
color: var(--v-500);
}
}
@keyframes animloader {
0% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 -2px;
.animation-container {
position: relative;
display: flex;
}
.animation-container label {
display: inline-block;
margin-right: 8px;
color: var(--v-400);
}
.loader {
display: inline-block;
width: 6px;
height: 6px;
margin-right: 4px;
margin-top: 12px;
background-color: var(--v-300);
border-radius: 50%;
animation: bubble-scale 1.2s infinite;
}
.loader:nth-child(2) {
animation-delay: 0.4s;
}
.loader:nth-child(3) {
animation-delay: 0.8s;
}
@keyframes bubble-scale {
0%,
100% {
transform: scale(1);
}
25% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 2px;
transform: scale(1.3);
}
50% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 2px, -38px 0 0 -2px;
}
75% {
box-shadow: 14px 0 0 2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 -2px;
}
100% {
box-shadow: 14px 0 0 -2px, 38px 0 0 2px, -14px 0 0 -2px, -38px 0 0 -2px;
transform: scale(1);
}
}