Xianbao QIAN
commited on
Commit
•
a2242ea
1
Parent(s):
4646723
use common policy data type
Browse files- src/components/AIPoliciesTable.tsx +1 -10
- src/pages/index.tsx +14 -11
- src/types.ts +9 -0
src/components/AIPoliciesTable.tsx
CHANGED
@@ -1,14 +1,5 @@
|
|
1 |
import React from "react";
|
2 |
-
|
3 |
-
interface PolicyData {
|
4 |
-
zh: string;
|
5 |
-
en: string;
|
6 |
-
link: {
|
7 |
-
zh: string;
|
8 |
-
en: string;
|
9 |
-
};
|
10 |
-
releaseDate: string;
|
11 |
-
}
|
12 |
|
13 |
interface AIPoliciesTableProps {
|
14 |
policies: PolicyData[];
|
|
|
1 |
import React from "react";
|
2 |
+
import { PolicyData } from "../types";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
4 |
interface AIPoliciesTableProps {
|
5 |
policies: PolicyData[];
|
src/pages/index.tsx
CHANGED
@@ -13,6 +13,7 @@ import AIPoliciesTable from "../components/AIPoliciesTable";
|
|
13 |
import fs from 'fs';
|
14 |
import path from 'path';
|
15 |
import matter from 'gray-matter';
|
|
|
16 |
|
17 |
// const PROVIDERS: ProviderInfo[] = [
|
18 |
// { color: "#ff7000", authors: ["mistralai"] },
|
@@ -31,24 +32,26 @@ import matter from 'gray-matter';
|
|
31 |
// { color: "#A020F0", authors: ["stabilityai"] },
|
32 |
// ];
|
33 |
|
34 |
-
interface PolicyData {
|
35 |
-
title: string;
|
36 |
-
language: string;
|
37 |
-
originalLink: string;
|
38 |
-
slug: string;
|
39 |
-
fileName: string;
|
40 |
-
releaseDate: string;
|
41 |
-
}
|
42 |
-
|
43 |
export async function getStaticProps() {
|
44 |
try {
|
45 |
// Read policy data from policies.json
|
46 |
const policiesFilePath = path.join(process.cwd(), 'content', 'policies.json');
|
47 |
const policiesContent = fs.readFileSync(policiesFilePath, 'utf-8');
|
48 |
-
const
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
|
50 |
// Sort policyData based on releaseDate in descending order
|
51 |
-
policyData.sort((a, b) => {
|
52 |
const dateA = a.releaseDate ? new Date(a.releaseDate).getTime() : 0;
|
53 |
const dateB = b.releaseDate ? new Date(b.releaseDate).getTime() : 0;
|
54 |
return dateB - dateA;
|
|
|
13 |
import fs from 'fs';
|
14 |
import path from 'path';
|
15 |
import matter from 'gray-matter';
|
16 |
+
import { PolicyData } from "../types";
|
17 |
|
18 |
// const PROVIDERS: ProviderInfo[] = [
|
19 |
// { color: "#ff7000", authors: ["mistralai"] },
|
|
|
32 |
// { color: "#A020F0", authors: ["stabilityai"] },
|
33 |
// ];
|
34 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
export async function getStaticProps() {
|
36 |
try {
|
37 |
// Read policy data from policies.json
|
38 |
const policiesFilePath = path.join(process.cwd(), 'content', 'policies.json');
|
39 |
const policiesContent = fs.readFileSync(policiesFilePath, 'utf-8');
|
40 |
+
const rawPolicyData = JSON.parse(policiesContent);
|
41 |
+
|
42 |
+
// Transform the policy data into the expected format
|
43 |
+
const policyData = rawPolicyData.map((policy: any) => ({
|
44 |
+
zh: policy.zh,
|
45 |
+
en: policy.en,
|
46 |
+
link: {
|
47 |
+
zh: policy.link,
|
48 |
+
en: policy.link,
|
49 |
+
},
|
50 |
+
releaseDate: policy.releaseDate,
|
51 |
+
}));
|
52 |
|
53 |
// Sort policyData based on releaseDate in descending order
|
54 |
+
policyData.sort((a: PolicyData, b: PolicyData) => {
|
55 |
const dateA = a.releaseDate ? new Date(a.releaseDate).getTime() : 0;
|
56 |
const dateB = b.releaseDate ? new Date(b.releaseDate).getTime() : 0;
|
57 |
return dateB - dateA;
|
src/types.ts
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
export interface PolicyData {
|
2 |
+
zh: string;
|
3 |
+
en: string;
|
4 |
+
link: {
|
5 |
+
zh: string;
|
6 |
+
en: string;
|
7 |
+
};
|
8 |
+
releaseDate: string;
|
9 |
+
}
|