stats loading
This commit is contained in:
parent
f9afa2501d
commit
e4b6b9b86a
7 changed files with 30 additions and 20 deletions
|
@ -9,7 +9,7 @@ services:
|
||||||
depends_on:
|
depends_on:
|
||||||
- surrealdb
|
- surrealdb
|
||||||
networks:
|
networks:
|
||||||
- surrealdb
|
- surrealdb_network
|
||||||
|
|
||||||
surrealdb:
|
surrealdb:
|
||||||
container_name: surrealdb
|
container_name: surrealdb
|
||||||
|
@ -34,10 +34,10 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/data
|
- ./data:/data
|
||||||
networks:
|
networks:
|
||||||
- surrealdb
|
- surrealdb_network
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
data:
|
data:
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
surrealdb:
|
surrealdb_network:
|
||||||
|
|
|
@ -11,7 +11,6 @@ export async function querydb(prevState: any, formData: FormData) {
|
||||||
const long_url = values.data.url;
|
const long_url = values.data.url;
|
||||||
|
|
||||||
let db = await initConnection();
|
let db = await initConnection();
|
||||||
console.log(db);
|
|
||||||
let url = await db.query(`
|
let url = await db.query(`
|
||||||
create url:[rand::string(8)] CONTENT {
|
create url:[rand::string(8)] CONTENT {
|
||||||
long_url: string::replace(string::replace($long_url, "https://", ""), "http://", ""),
|
long_url: string::replace(string::replace($long_url, "https://", ""), "http://", ""),
|
||||||
|
@ -23,7 +22,6 @@ export async function querydb(prevState: any, formData: FormData) {
|
||||||
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
url = url[0][0].id;
|
url = url[0][0].id;
|
||||||
console.log("URL", url);
|
|
||||||
|
|
||||||
return { url: url };
|
return { url: url };
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
"use server";
|
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
export const formSchema = z.object({
|
export const formSchema = z.object({
|
||||||
|
|
|
@ -9,8 +9,12 @@ export async function querydb() {
|
||||||
order by clicks desc
|
order by clicks desc
|
||||||
limit 50;
|
limit 50;
|
||||||
`);
|
`);
|
||||||
|
|
||||||
|
// @ts-ignore
|
||||||
|
stats = stats[0];
|
||||||
|
|
||||||
return stats;
|
return stats;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return;
|
return [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,11 +6,7 @@ import {
|
||||||
CardTitle
|
CardTitle
|
||||||
} from "@/components/ui/card";
|
} from "@/components/ui/card";
|
||||||
|
|
||||||
export default function GlobalError({
|
export default function Loading() {
|
||||||
error,
|
|
||||||
}: {
|
|
||||||
error: Error & { digest?: string }
|
|
||||||
}) {
|
|
||||||
return (
|
return (
|
||||||
<CardGrid max_rows={1}>
|
<CardGrid max_rows={1}>
|
||||||
<Card>
|
<Card>
|
||||||
|
|
|
@ -1,16 +1,26 @@
|
||||||
"use server";
|
"use client";
|
||||||
import CardGrid from "@/components/card-grid";
|
import CardGrid from "@/components/card-grid";
|
||||||
import { Card } from "@/components/ui/card";
|
import { Card } from "@/components/ui/card";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
import { columns } from "./columns";
|
import { columns } from "./columns";
|
||||||
import { DataTable } from "./data-table";
|
import { DataTable } from "./data-table";
|
||||||
import { querydb } from "./db";
|
import { querydb } from "./db";
|
||||||
|
import Loading from "./loading";
|
||||||
|
|
||||||
export default async function StatsPage() {
|
export default function StatsPage() {
|
||||||
let data = await querydb();
|
let [data, setData] = useState([]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const fetchData = async () => {
|
||||||
|
const result = await querydb();
|
||||||
|
console.log(result);
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
data = data[0];
|
setData(result);
|
||||||
|
};
|
||||||
|
fetchData();
|
||||||
|
}, []);
|
||||||
|
|
||||||
if (data !== undefined) {
|
if (data.length !== 0 && data !== undefined && data !== null) {
|
||||||
const formatDate = (dateString: string | number | Date) => {
|
const formatDate = (dateString: string | number | Date) => {
|
||||||
const date = new Date(dateString);
|
const date = new Date(dateString);
|
||||||
const day = String(date.getDate()).padStart(2, '0');
|
const day = String(date.getDate()).padStart(2, '0');
|
||||||
|
@ -19,6 +29,7 @@ export default async function StatsPage() {
|
||||||
return `${month}/${day}/${year}`;
|
return `${month}/${day}/${year}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// @ts-ignore
|
||||||
data = data.map(item => ({
|
data = data.map(item => ({
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
...item,
|
...item,
|
||||||
|
@ -31,7 +42,9 @@ export default async function StatsPage() {
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return data.length === 0 ? (
|
||||||
|
<Loading />
|
||||||
|
) : (
|
||||||
<CardGrid max_rows={1}>
|
<CardGrid max_rows={1}>
|
||||||
<Card>
|
<Card>
|
||||||
{/* @ts-ignore */}
|
{/* @ts-ignore */}
|
||||||
|
|
|
@ -5,7 +5,7 @@ const db = new Surreal();
|
||||||
|
|
||||||
export async function initConnection(): Promise<Surreal> {
|
export async function initConnection(): Promise<Surreal> {
|
||||||
try {
|
try {
|
||||||
db.connect("http://" + process.env.DB_URL_PORT + "/rpc", {
|
db.connect("ws://" + process.env.DB_URL_PORT + "/rpc", {
|
||||||
namespace: "url",
|
namespace: "url",
|
||||||
database: "url",
|
database: "url",
|
||||||
auth: {
|
auth: {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue