Compare commits
8 Commits
master
...
feature_ke
Author | SHA1 | Date |
---|---|---|
reddigriz | f760f81c38 | 2 years ago |
reddigriz | 3e4630fe36 | 2 years ago |
reddigriz | ed4ea2df0f | 2 years ago |
reddigriz | 480796efa4 | 2 years ago |
reddigriz | ce0b73fdf9 | 2 years ago |
reddigriz | f48095e150 | 2 years ago |
reddigriz | 4985c9151e | 2 years ago |
reddigriz | db59f38f9d | 2 years ago |
@ -1,9 +1,36 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
|
//TODO: Fixare passaggio promps a header
|
||||||
import ChatList from "@/components/ChatList.vue";
|
import ChatList from "@/components/ChatList.vue";
|
||||||
|
import Header from "@/components/Header.vue";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<main>
|
<main>
|
||||||
<ChatList />
|
<Header
|
||||||
|
:chat-picture="chatPicture"
|
||||||
|
:chat-name="chatName"
|
||||||
|
:header-chat="headerChat"
|
||||||
|
/>
|
||||||
|
<ChatList @change-header="changeHeader" />
|
||||||
</main>
|
</main>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
chatPicture: "",
|
||||||
|
chatName: "",
|
||||||
|
headerChat: false,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
changeHeader(e) {
|
||||||
|
this.chatPicture = e[0];
|
||||||
|
this.chatName = e[1];
|
||||||
|
this.headerChat = true;
|
||||||
|
console.table("header", e);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
Binary file not shown.
After Width: | Height: | Size: 2.5 MiB |
@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
"history": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"text": "🐱⛸️➡️?",
|
||||||
|
"is_user": false,
|
||||||
|
"seen": false,
|
||||||
|
"date": "22/09 12:12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"text": "🐱⛸️➡️?",
|
||||||
|
"is_user": true,
|
||||||
|
"seen": true,
|
||||||
|
"date": "22/09 12:12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"text": "🐱⛸️➡️?",
|
||||||
|
"is_user": false,
|
||||||
|
"seen": true,
|
||||||
|
"date": "22/09 12:12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"text": "🐱⛸️➡️?",
|
||||||
|
"is_user": true,
|
||||||
|
"seen": true,
|
||||||
|
"date": "22/09 12:12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5,
|
||||||
|
"text": "🐱⛸️➡️?",
|
||||||
|
"is_user": false,
|
||||||
|
"seen": false,
|
||||||
|
"date": "22/09 12:12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6,
|
||||||
|
"text": "🐱⛸️➡️?",
|
||||||
|
"is_user": true,
|
||||||
|
"seen": true,
|
||||||
|
"date": "22/09 12:12"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 261.76 226.69" xmlns:v="https://vecta.io/nano"><path d="M161.096.001l-30.225 52.351L100.647.001H-.005l130.877 226.688L261.749.001z" fill="#41b883"/><path d="M161.096.001l-30.225 52.351L100.647.001H52.346l78.526 136.01L209.398.001z" fill="#34495e"/></svg>
|
|
Before Width: | Height: | Size: 308 B |
@ -1,14 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div id="ChatHistory">
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: {},
|
|
||||||
setup() {},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped></style>
|
|
@ -1,19 +0,0 @@
|
|||||||
<script setup>
|
|
||||||
import Keyboard from "./Keyboard.vue";
|
|
||||||
import ChatHistory from "./ChatHistory.vue";
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<div>
|
|
||||||
<ChatHistory />
|
|
||||||
<v-if="writeMessage" Keyboard />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
setup() {},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped></style>
|
|
@ -0,0 +1,32 @@
|
|||||||
|
<template>
|
||||||
|
<header>
|
||||||
|
<div v-if="headerChat" id="header-chat">
|
||||||
|
<div class="chat-picture">
|
||||||
|
<figure>
|
||||||
|
<img src="chat-picture" alt="The chat picture" />
|
||||||
|
</figure>
|
||||||
|
</div>
|
||||||
|
<div class="chat-name">
|
||||||
|
<h3>{{ chatName }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<div id="header">
|
||||||
|
<p>Geografia</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
setup() {},
|
||||||
|
props: {
|
||||||
|
ChatPicture: { type: String, default: "" },
|
||||||
|
chatName: { type: String, default: "" },
|
||||||
|
headerChat: { type: Boolean, default: true },
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped></style>
|
@ -1,17 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="msg-composition">
|
|
||||||
<KeyboardWord type="subject" />
|
|
||||||
<KeyboardWord type="object" />
|
|
||||||
<KeyboardWord type="verb" />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import KeyboardWord from "./KeyboardWord.vue";
|
|
||||||
export default {
|
|
||||||
components: { KeyboardWord },
|
|
||||||
setup() {},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped></style>
|
|
@ -1,15 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="msg-composition">
|
|
||||||
<KeyboardWord />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import KeyboardWord from "./KeyboardWord.vue";
|
|
||||||
export default {
|
|
||||||
components: { KeyboardWord },
|
|
||||||
setup() {},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped></style>
|
|
@ -0,0 +1,16 @@
|
|||||||
|
<template>
|
||||||
|
<div class="keyboard" @click="selectedWord('⛸️')">
|
||||||
|
<p>I'm writing hereee</p>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
methods: {
|
||||||
|
selectedWord(word) {
|
||||||
|
this.$emit("selectedWord", word);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style scoped></style>
|
@ -0,0 +1,15 @@
|
|||||||
|
<template>
|
||||||
|
<div class="keyboard-word">
|
||||||
|
<label for="word">
|
||||||
|
<input type="text" />
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped></style>
|
@ -0,0 +1,38 @@
|
|||||||
|
<script setup>
|
||||||
|
import Keyboard from "./Keyboard.vue";
|
||||||
|
import KeyboardWord from "./KeyboardWord.vue";
|
||||||
|
import PhraseType from "./PhraseType.vue";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<button alt="Back" name="Back" @click="this.$emit('hideMessageHistory')">←</button>
|
||||||
|
<KeyboardWord ref="subject" />
|
||||||
|
<KeyboardWord ref="object" />
|
||||||
|
<KeyboardWord ref="verb" />
|
||||||
|
<PhraseType />
|
||||||
|
<button name="confirm" @click="confirm">OK?</button>
|
||||||
|
<Keyboard @selectedWord="selectedWord" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
methods: {
|
||||||
|
selectedWord(e) {
|
||||||
|
console.log("selectedWord", e);
|
||||||
|
},
|
||||||
|
confirm() {
|
||||||
|
var message = {
|
||||||
|
subject: this.$refs.subject.items,
|
||||||
|
object: this.$refs.object.items,
|
||||||
|
verb: this.$refs.verb.items,
|
||||||
|
tipo_frase: this.$refs.phraseType.items,
|
||||||
|
};
|
||||||
|
console.log(message);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped></style>
|
@ -0,0 +1,33 @@
|
|||||||
|
<template>
|
||||||
|
<div class="phrase-type-selection" @click="popup = true">
|
||||||
|
<p>+|-|?-|?+</p>
|
||||||
|
</div>
|
||||||
|
<div class="popup" v-if="popup">
|
||||||
|
<button name="phrase-type" value="+" @click="selectedPhraseType('+')">
|
||||||
|
+
|
||||||
|
</button>
|
||||||
|
<button name="phrase-type" value="-" @click="selectedPhraseType('-')">
|
||||||
|
-
|
||||||
|
</button>
|
||||||
|
<button name="phrase-type" value="?-" @click="selectedPhraseType('?-')">
|
||||||
|
?-
|
||||||
|
</button>
|
||||||
|
<button name="phrase-type" value="?+" @click="selectedPhraseType('?+')">
|
||||||
|
?+
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return { phraseType: null, popup: false };
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
selectedPhraseType(phraseType) {
|
||||||
|
this.phraseType = phraseType;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style scoped></style>
|
@ -0,0 +1,31 @@
|
|||||||
|
<script setup>
|
||||||
|
import ChatMsg from "./ChatMsg.vue";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<!-- Modificare la proprieta' css z-index
|
||||||
|
per permettero lo scrolling e una dimensione fissa -->
|
||||||
|
|
||||||
|
<div id="ChatHistory">
|
||||||
|
<ChatMsg
|
||||||
|
v-for="message in $options.demo_messages.history"
|
||||||
|
:key="message.id"
|
||||||
|
:message-text="message.text"
|
||||||
|
:is-user="message.is_user"
|
||||||
|
:message-seen="message.seen"
|
||||||
|
:message-date="message.date"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import demo_messages_json from "@/assets/demo_messages.json";
|
||||||
|
export default {
|
||||||
|
demo_messages: demo_messages_json,
|
||||||
|
props: {
|
||||||
|
chatId: Number,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped></style>
|
@ -0,0 +1,37 @@
|
|||||||
|
<script setup>
|
||||||
|
import MessageComposition from "../keyboard/MessageComposition.vue";
|
||||||
|
import ChatHistory from "./ChatHistory.vue";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<!-- Move this button in the header -->
|
||||||
|
<div id="chat-view" v-show="!writeMessage">
|
||||||
|
<button alt="Back" name="Back" @click="this.$emit('hideChat')">←</button>
|
||||||
|
<ChatHistory :chat-id="chatId" />
|
||||||
|
<button
|
||||||
|
alt="write message"
|
||||||
|
name="write-message"
|
||||||
|
@click="this.writeMessage = true"
|
||||||
|
>
|
||||||
|
+
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<MessageComposition
|
||||||
|
v-if="writeMessage"
|
||||||
|
:chat-id="chatId"
|
||||||
|
@hideMessageHistory="this.writeMessage = false"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return { writeMessage: false };
|
||||||
|
},
|
||||||
|
props: { chatId: Number },
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped></style>
|
@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
VueRouter inutile fino allo sviluppo dell'handler dei messaggi
|
||||||
|
e solo nel caso si voglia supportare l'uso di url nella versione web
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { createRouter, createWebHashHistory } from "vue-router";
|
||||||
|
|
||||||
|
2; // 1. Define route components.
|
||||||
|
const ChatList = { template: "./components/ChatList.vue" };
|
||||||
|
// const ChatView = { template: "./components/ChatView.vue" };
|
||||||
|
// const MessageComposition = { template: "./components/MessageComposition.vue" };
|
||||||
|
|
||||||
|
// 2. Define some routes
|
||||||
|
const routes = [
|
||||||
|
{ path: "/", component: ChatList },
|
||||||
|
// { path: "/chat_view", component: ChatView },
|
||||||
|
// { path: "/chat_view/write", component: MessageComposition },
|
||||||
|
];
|
||||||
|
|
||||||
|
// 3. Create the router instance and pass the `routes` option
|
||||||
|
export const router = createRouter({
|
||||||
|
history: createWebHashHistory(),
|
||||||
|
routes,
|
||||||
|
});
|
Loading…
Reference in New Issue