@0xchain/footer 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # link
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build link` to build the library.
8
+
9
+ ## Running unit tests
10
+
11
+ Run `nx test link` to execute the unit tests via [Vitest](https://vitest.dev/).
@@ -0,0 +1,3 @@
1
+ import { default as React } from 'react';
2
+ export default function Footer(): React.JSX.Element;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,CAAC,OAAO,UAAU,MAAM,sBAqD7B"}
package/dist/index.js ADDED
@@ -0,0 +1,52 @@
1
+ 'use client';
2
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
3
+ import c from "@0xchain/image";
4
+ import r from "@0xchain/link";
5
+ import { useLocale as i } from "next-intl";
6
+ import l from "@0xchain/translation";
7
+ import { Mail as s } from "lucide-react";
8
+ import { useState as n, useEffect as f } from "react";
9
+ function m() {
10
+ const [a, o] = n("");
11
+ return f(() => {
12
+ o((/* @__PURE__ */ new Date()).getFullYear().toString());
13
+ }, []), a;
14
+ }
15
+ function N() {
16
+ const a = i();
17
+ return /* @__PURE__ */ e("footer", { className: "md:bg-module text-xs w-full p-3 mt-3", children: /* @__PURE__ */ t("div", { className: "max-w-300 flex flex-col md:flex-row justify-center mx-auto w-full py-3", children: [
18
+ /* @__PURE__ */ t("div", { className: "w-full md:w-1/2 flex flex-col py-3 md:py-0 gap-3 md:gap-0 justify-between", children: [
19
+ /* @__PURE__ */ e(c, { src: `${process.env.NEXT_PUBLIC_CDN_URL}/uploads/2025/11/26/6926f275c68ed.png`, width: 116, height: 32, objectFit: "contain" }),
20
+ /* @__PURE__ */ t("div", { className: "text-subtitle", children: [
21
+ "© ",
22
+ m(),
23
+ " iChatGo ",
24
+ /* @__PURE__ */ e(l, { value: "allRightsReserved", parentKey: "footer" })
25
+ ] })
26
+ ] }),
27
+ /* @__PURE__ */ t("div", { className: "flex flex-col md:flex-row justify-between shrink-0 w-full md:w-1/2", children: [
28
+ /* @__PURE__ */ t("div", { className: "flex flex-col gap-3 py-3 md:py-0", children: [
29
+ /* @__PURE__ */ e("div", { className: "text-title", children: /* @__PURE__ */ e(l, { value: "product", parentKey: "footer" }) }),
30
+ /* @__PURE__ */ e("div", { className: "text-subtitle flex flex-col gap-3", children: /* @__PURE__ */ e(r, { href: "/token-list", baseUrl: process.env.NEXT_PUBLIC_BASE_URL, children: /* @__PURE__ */ e(l, { value: "tokenList", parentKey: "footer" }) }) })
31
+ ] }),
32
+ /* @__PURE__ */ t("div", { className: "flex flex-col gap-3 py-3 md:py-0", children: [
33
+ /* @__PURE__ */ e("div", { className: "text-title", children: /* @__PURE__ */ e(l, { value: "contactUs", parentKey: "footer" }) }),
34
+ /* @__PURE__ */ e("div", { className: "text-subtitle flex flex-col gap-3", children: /* @__PURE__ */ t(r, { href: "mailto:contact@ichatgo.ai", className: "flex items-center", children: [
35
+ /* @__PURE__ */ e(s, { className: "w-4 h-4 mr-1" }),
36
+ "contact@ichatgo.ai"
37
+ ] }) })
38
+ ] }),
39
+ /* @__PURE__ */ t("div", { className: "flex flex-col gap-3 py-3 md:py-0", children: [
40
+ /* @__PURE__ */ e("div", { className: "text-title", children: /* @__PURE__ */ e(l, { value: "company", parentKey: "footer" }) }),
41
+ /* @__PURE__ */ t("div", { className: "text-subtitle flex flex-col gap-3", children: [
42
+ /* @__PURE__ */ e(r, { href: `${process.env.NEXT_PUBLIC_PROTOCOL_URL}/${a}/privacy-policy.html`, children: /* @__PURE__ */ e(l, { value: "privacyPolicy", parentKey: "footer" }) }),
43
+ /* @__PURE__ */ e(r, { href: `${process.env.NEXT_PUBLIC_PROTOCOL_URL}/${a}/terms-of-service.html`, children: /* @__PURE__ */ e(l, { value: "termsOfService", parentKey: "footer" }) }),
44
+ /* @__PURE__ */ e(r, { href: `${process.env.NEXT_PUBLIC_OFFICIAL_URL}/${a}`, children: /* @__PURE__ */ e(l, { value: "aboutUs", parentKey: "footer" }) })
45
+ ] })
46
+ ] })
47
+ ] })
48
+ ] }) });
49
+ }
50
+ export {
51
+ N as default
52
+ };
package/dist/year.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export default function Year(): string;
2
+ //# sourceMappingURL=year.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"year.d.ts","sourceRoot":"","sources":["../src/year.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,IAAI,IAKX,MAAM,CACtB"}
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "@0xchain/footer",
3
+ "version": "0.0.1",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "default": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "src",
18
+ "!**/*.tsbuildinfo"
19
+ ],
20
+ "devDependencies": {
21
+ "rollup-plugin-preserve-use-client": "3.0.1"
22
+ },
23
+ "dependencies": {
24
+ "lucide-react": "0.539.0",
25
+ "react": "19.1.1",
26
+ "next-intl": "4.6.1",
27
+ "@0xchain/image": "0.0.1",
28
+ "@0xchain/translation": "0.0.1",
29
+ "@0xchain/link": "0.0.1"
30
+ },
31
+ "publishConfig": {
32
+ "access": "public"
33
+ }
34
+ }
package/src/index.tsx ADDED
@@ -0,0 +1,61 @@
1
+ import React from 'react';
2
+ import ImageBar from '@0xchain/image';
3
+ import LinkBar from '@0xchain/link';
4
+ import { useLocale } from 'next-intl';
5
+ import Translation from '@0xchain/translation';
6
+ import { Mail } from 'lucide-react';
7
+ import Year from './year';
8
+ export default function Footer() {
9
+ const locale = useLocale();
10
+ return (
11
+ <footer className='md:bg-module text-xs w-full p-3 mt-3'>
12
+ <div className="max-w-300 flex flex-col md:flex-row justify-center mx-auto w-full py-3">
13
+ <div className="w-full md:w-1/2 flex flex-col py-3 md:py-0 gap-3 md:gap-0 justify-between">
14
+ <ImageBar src={`${process.env.NEXT_PUBLIC_CDN_URL}/uploads/2025/11/26/6926f275c68ed.png`} width={116} height={32} objectFit='contain'></ImageBar>
15
+ <div className='text-subtitle'>&copy; {Year()} iChatGo <Translation value="allRightsReserved" parentKey='footer' /></div>
16
+ </div>
17
+ <div className="flex flex-col md:flex-row justify-between shrink-0 w-full md:w-1/2">
18
+ <div className="flex flex-col gap-3 py-3 md:py-0">
19
+ <div className="text-title"><Translation value="product" parentKey='footer' /></div>
20
+ <div className="text-subtitle flex flex-col gap-3">
21
+ <LinkBar href="/token-list" baseUrl={process.env.NEXT_PUBLIC_BASE_URL}><Translation value="tokenList" parentKey='footer' /></LinkBar>
22
+ </div>
23
+ </div>
24
+ <div className="flex flex-col gap-3 py-3 md:py-0">
25
+ <div className="text-title"><Translation value="contactUs" parentKey='footer' /></div>
26
+ <div className="text-subtitle flex flex-col gap-3">
27
+ <LinkBar href="mailto:contact@ichatgo.ai" className="flex items-center">
28
+ <Mail className="w-4 h-4 mr-1" />
29
+ contact@ichatgo.ai
30
+ </LinkBar>
31
+ </div>
32
+ </div>
33
+ <div className="flex flex-col gap-3 py-3 md:py-0">
34
+ <div className="text-title"><Translation value="company" parentKey='footer' /></div>
35
+ <div className="text-subtitle flex flex-col gap-3">
36
+ <LinkBar href={`${process.env.NEXT_PUBLIC_PROTOCOL_URL}/${locale}/privacy-policy.html`} >
37
+ <Translation value="privacyPolicy" parentKey='footer' />
38
+ </LinkBar>
39
+ <LinkBar href={`${process.env.NEXT_PUBLIC_PROTOCOL_URL}/${locale}/terms-of-service.html`} >
40
+ <Translation value="termsOfService" parentKey='footer' />
41
+ </LinkBar>
42
+ <LinkBar href={`${process.env.NEXT_PUBLIC_OFFICIAL_URL}/${locale}`} >
43
+ <Translation value="aboutUs" parentKey='footer' />
44
+ </LinkBar>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ {/* <div className='flex items-center justify-center flex-col sm:flex-row'>
49
+ <span className='mx-1 text-center'>&copy;2025 ichaingo { t('allRightsReserved')}</span>
50
+
51
+ <a className='flex items-center bg-g hover:underline text-center' href='mailto:contact@ichatgo.ai'>
52
+ <i className="inline-block mr-1 ">
53
+ <ImageBar src={EmailIcon} width={14} height={11}></ImageBar>
54
+ </i>
55
+ contact@ichatgo.ai
56
+ </a>
57
+ </div> */}
58
+ </div>
59
+ </footer>
60
+ )
61
+ }
package/src/year.tsx ADDED
@@ -0,0 +1,11 @@
1
+ 'use client'
2
+
3
+ import { useEffect, useState } from "react";
4
+
5
+ export default function Year() {
6
+ const [year, setYear] = useState<string>('');
7
+ useEffect(() => {
8
+ setYear(new Date().getFullYear().toString());
9
+ }, []);
10
+ return year as string;
11
+ }