PageSourceSearch

https://sonic.so/components/BlogPartnersFooter.jsx

js sonic.so collected 2026-10-02 04:34:33 UTC 5,363 bytes, 116 lines download raw bytes

1/* Blog 3-up + Partners + Footer */
2
3const Blog = () => {
4  const posts = (window.BlogStore ? window.BlogStore.getPosts() : []).slice(0, 3);
5  const dateStr = (d) => new Date(d).toLocaleDateString('en-GB', { day: 'numeric', month: 'short', year: 'numeric' });
6  return (
7    <section id="blog" className="section">
8      
9    </section>
10  );
11};
12
13const PARTNERS = [
14  { name: 'ICANN', role: 'Recognized ccTLD',  logo: 'assets/partner-icann.png' },
15  { name: 'IANA',  role: 'Root-zone authority', logo: 'assets/partner-iana.png' },
16  { name: 'AfTLD', role: 'African TLD Org.',  logo: 'assets/partner-aftld.png' },
17  { name: 'NCA',   role: 'National Communications Authority — Regulator', logo: 'assets/partner-nca.png' },
18];
19
20const Partners = () => (
21  <section id="partners" className="partners">
22    <div className="wrap">
23      <div className="partners__head">
24        <h2>Working with the world&apos;s internet community.</h2>
25        <p>Trusted partners and accreditations behind the .so registry.</p>
26      </div>
27      <div className="partners__grid">
28        {PARTNERS.map(p => (
29          <div className="partner" key={p.name}>
30            <div className="partner__logo-wrap">
31              <img src={p.logo} alt={p.name} className="partner__logo-img" />
32            </div>
33          </div>
34        ))}
35      </div>
36    </div>
37  </section>
38);
39
40const PinIcon = () => (<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M12 21s-7-7-7-12a7 7 0 0 1 14 0c0 5-7 12-7 12z"/><circle cx="12" cy="9" r="2.5"/></svg>);
41const PhoneIcon = () => (<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.37 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.33 1.85.57 2.81.7A2 2 0 0 1 22 16.92z"/></svg>);
42const MailIcon = () => (<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><rect x="3" y="5" width="18" height="14" rx="2"/><path d="m3 7 9 6 9-6"/></svg>);
43
44const Footer = () => (
45  <footer className="footer">
46    <div className="footer__topband">
47      <div className="wrap footer__topband-inner">
48        <div className="footer__topband-mark">
49          <img src="assets/sonic-logo-full.png" alt="SONIC — Somali Network Information Center" className="footer__logo-img" />
50        </div>
51        <div className="footer__topband-cta">
52          <h3>Stay in the loop on .so</h3>
53          <p>Policy updates, registrar news and outage notices — delivered when it matters.</p>
54          <form className="footer__news" onSubmit={e => e.preventDefault()}>
55            <input type="email" placeholder="[email protected]" aria-label="Email" />
56            <button type="submit" className="btn btn--primary">Subscribe</button>
57          </form>
58        </div>
59      </div>
60    </div>
61
62    <div className="wrap">
63      <div className="footer__grid">
64        <div className="footer__brand">
65          <p className="footer__about">
66            Somali Network Information Centre (SONIC) is the registry for .SO Internet
67            Domain Names and maintains the database of names registered in the .so
68            country code Top‑Level Domain.
69          </p>
70          <div className="footer__contact">
71            <span><PinIcon /> Hamarweine, Mogadishu — Somalia · PO. BOX 77</span>
72            <span><PhoneIcon /> +252 61 9988879</span>
73            <span><MailIcon /> [email protected]</span>
74          </div>
75        </div>
76        <div className="footer__col">
77          <h4>SONIC</h4>
78          <ul>
79            <li><a href="#">Policies</a></li>
80            <li><a href="#">Domain Disputes</a></li>
81            <li><a href="#">DNS &amp; DNSSEC</a></li>
82            <li><a href="#">FAQs</a></li>
83          </ul>
84        </div>
85        <div className="footer__col">
86          <h4>Registrars</h4>
87          <ul>
88            <li><a href="#">Registrar Login</a></li>
89            <li><a href="#">Become a Registrar</a></li>
90            <li><a href="#">Local Registrars</a></li>
91            <li><a href="#">International Registrars</a></li>
92          </ul>
93        </div>
94        <div className="footer__col">
95          <h4>Resources</h4>
96          <ul>
97            <li><a href="https://whois.nic.so/" target="_blank" rel="noopener">WhoIs Lookup ↗</a></li>
98            <li><a href="https://sigf.so/" target="_blank" rel="noopener">SIGF ↗</a></li>
99            <li><a href="https://girlsinict.so/" target="_blank" rel="noopener">Girls in ICT ↗</a></li>
100            <li><a href="https://edu.sonic.so/" target="_blank" rel="noopener">Edutek ↗</a></li>
101          </ul>
102        </div>
103      </div>
104      <div className="footer__bottom">
105        <span>© Somali Network Information Centre 2026 — All Rights Reserved</span>
106        <div className="footer__bottom-links">
107          <a href="#">Home</a><a href="#">About us</a><a href="#">Blog</a><a href="#">FAQs</a>
108        </div>
109      </div>
110    </div>
111  </footer>
112);
113
114window.Blog = Blog;
115window.Partners = Partners;
116window.Footer = Footer;

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.