Base layout

This commit is contained in:
Aslan 2025-12-30 22:38:02 +01:00
parent 874bd18f11
commit f1e90c4dd2
34 changed files with 2966 additions and 2725 deletions

View file

@ -0,0 +1,7 @@
import type { Component } from "solid-js";
const Channel: Component = () => {
return <div></div>;
};
export default Channel;

View file

@ -0,0 +1 @@
export * from "./Channel";

View file

@ -0,0 +1,7 @@
import type { Component } from "solid-js";
const ChannelBar: Component = () => {
return <div class="bg-stone-800 h-16 shadow-bar z-10"></div>;
};
export default ChannelBar;

View file

@ -0,0 +1 @@
export * from "./ChannelBar";

View file

@ -0,0 +1,7 @@
import type { Component } from "solid-js";
const Community: Component = () => {
return <div></div>;
};
export default Community;

View file

@ -0,0 +1 @@
export * from "./Community";

View file

@ -0,0 +1,7 @@
import type { Component } from "solid-js";
const Member: Component = () => {
return <div></div>;
};
export default Member;

View file

@ -0,0 +1 @@
export * from "./Member";

View file

@ -0,0 +1,23 @@
import type { Component } from "solid-js";
import { IMessageProps } from "./types";
const Message: Component<IMessageProps> = (props: IMessageProps) => {
return (
<li class="list-row hover:bg-stone-700">
<div
class="avatar cursor-pointer"
onClick={() => props.onProfileClick(props.userId)}
>
<div class="w-10 rounded-full">
<img src={props.profileImage} />
</div>
</div>
<div>
<div>{props.username}</div>
<p class="list-col-wrap text-xs">{props.message}</p>
</div>
</li>
);
};
export default Message;

View file

@ -0,0 +1,2 @@
export * from "./Message";
export * from "./types";

View file

@ -0,0 +1,10 @@
interface IMessageProps {
messageId: string;
message: string;
userId: string;
username: string;
profileImage: string;
onProfileClick: (userId: string) => void;
}
export { type IMessageProps };

View file

@ -0,0 +1,22 @@
import type { Component } from "solid-js";
const MessageBar: Component = () => {
return (
<div class="bg-stone-800 h-16 shadow-bar z-10 p-2">
<div class="join w-full h-full">
<div class="w-full h-full">
<label class="input validator join-item w-full h-full">
<input
type="text"
placeholder="Write a text message..."
required
/>
</label>
</div>
<button class="btn btn-neutral join-item h-full">Send</button>
</div>
</div>
);
};
export default MessageBar;

View file

@ -0,0 +1 @@
export * from "./MessageBar";