six-degrees 0.4.11 → 0.5.0
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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +9 -9
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +12 -12
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +11 -11
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/api/admin-delete/route.js +1 -1
- package/.next/standalone/.next/server/app/api/admin-delete/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/admin-update/route.js +1 -1
- package/.next/standalone/.next/server/app/api/admin-update/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/bridges/route.js +1 -1
- package/.next/standalone/.next/server/app/api/bridges/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/bulk-import/route.js +1 -1
- package/.next/standalone/.next/server/app/api/bulk-import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/company-scores/legacy/route.js +1 -1
- package/.next/standalone/.next/server/app/api/company-scores/legacy/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/company-scores/route.js +1 -1
- package/.next/standalone/.next/server/app/api/company-scores/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/connections/route.js +1 -1
- package/.next/standalone/.next/server/app/api/connections/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/export/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/restart/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/reveal/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/delete-cluster/route.js +1 -1
- package/.next/standalone/.next/server/app/api/delete-cluster/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ingest/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ingest/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/route.js +1 -1
- package/.next/standalone/.next/server/app/api/network/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/outreach/route.js +1 -1
- package/.next/standalone/.next/server/app/api/outreach/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/queue/route.js +1 -1
- package/.next/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/scraper/route.js +3 -2
- package/.next/standalone/.next/server/app/api/scraper/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/route.js +1 -1
- package/.next/standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/sector-preview/route.js +1 -1
- package/.next/standalone/.next/server/app/api/settings/sector-preview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/sector-suggestions/route.js +1 -1
- package/.next/standalone/.next/server/app/api/settings/sector-suggestions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/setup-profile/route.js +1 -1
- package/.next/standalone/.next/server/app/api/setup-profile/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/crm/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/route.js +3 -3
- package/.next/standalone/.next/server/app/api/social/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/unlock/route.js +1 -1
- package/.next/standalone/.next/server/app/api/unlock/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/update/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/update-images/route.js +1 -1
- package/.next/standalone/.next/server/app/api/update-images/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/users/route.js +1 -1
- package/.next/standalone/.next/server/app/api/users/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/avatars/[file]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/import/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/import/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/import.html +1 -1
- package/.next/standalone/.next/server/app/import.rsc +14 -14
- package/.next/standalone/.next/server/app/import.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/import.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/import.segments/import/__PAGE__.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +14 -14
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/launch/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/launch/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/launch.html +2 -2
- package/.next/standalone/.next/server/app/launch.rsc +14 -14
- package/.next/standalone/.next/server/app/launch.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/launch.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/launch.segments/launch/__PAGE__.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/paths/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/paths/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/paths.html +1 -1
- package/.next/standalone/.next/server/app/paths.rsc +14 -14
- package/.next/standalone/.next/server/app/paths.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/paths.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/paths.segments/paths/__PAGE__.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/profile/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/profile/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/profile.html +1 -1
- package/.next/standalone/.next/server/app/profile.rsc +14 -14
- package/.next/standalone/.next/server/app/profile.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/profile.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/profile.segments/profile/__PAGE__.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/queue/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/queue/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/queue.html +1 -1
- package/.next/standalone/.next/server/app/queue.rsc +14 -14
- package/.next/standalone/.next/server/app/queue.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/queue.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/queue.segments/queue/__PAGE__.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/scores/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/scores/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/scores.html +1 -1
- package/.next/standalone/.next/server/app/scores.rsc +14 -14
- package/.next/standalone/.next/server/app/scores.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/scores.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/scores.segments/scores/__PAGE__.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +14 -14
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/setup/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/setup.html +1 -1
- package/.next/standalone/.next/server/app/setup.rsc +14 -14
- package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/social/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/social/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/social.html +1 -1
- package/.next/standalone/.next/server/app/social.rsc +14 -14
- package/.next/standalone/.next/server/app/social.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/social.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/social.segments/social/__PAGE__.segment.rsc +13 -13
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0bat8nx._.js → [root-of-the-server]__13dx4sd._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__15wc9e-._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1kbl21f._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__20rwfdw._.js +8 -0
- package/.next/standalone/.next/server/chunks/_072jl0y._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1_fynia._.js +7 -7
- package/.next/standalone/.next/server/chunks/_1itd1o_._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1iwkh8t._.js +1 -1
- package/.next/standalone/.next/server/chunks/lib_0851sk0._.js +8 -0
- package/.next/standalone/.next/server/chunks/lib_1q7p2ro._.js +8 -0
- package/.next/standalone/.next/server/chunks/lib_1r6l86l._.js +8 -0
- package/.next/standalone/.next/server/chunks/lib_db-client_15le7cw.js +8 -8
- package/.next/standalone/.next/server/chunks/lib_rpc_04s8mzr.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_053z7as.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0b_-2te.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0dhbxdm.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0dxlk31.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0f8b-qc.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0pzie7_.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0r76fq_.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0ut7pjp.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_15zyqaz.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_18zpjtq.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1a8xkiz.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1e_55xo.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1oxfd1_.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1s0lod0.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_scoring_1-e4ur0.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_01kacen._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_03l7vge._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_1ap1tu_._.js → _0gtv9jb._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0jdkqgi._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0xi-fbs._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0xmwmfv._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_1-b9hj7._.js +9 -0
- package/.next/standalone/.next/server/chunks/ssr/_112ewem._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_16ab63q._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_1fxm0-s._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_1ra1d3r._.js +9 -0
- package/.next/standalone/.next/server/chunks/ssr/app_141w189._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/app_components_ui_0pdmz2z.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/app_page_1fazqbf.js +22 -10
- package/.next/standalone/.next/server/chunks/ssr/app_paths_page_1ol90m7.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/app_profile_page_0u3-l5y.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_queue_page_0c6znd6.js +6 -5
- package/.next/standalone/.next/server/chunks/ssr/app_settings_page_1f8mjj_.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_setup_page_1-282zx.js +19 -3
- package/.next/standalone/.next/server/chunks/ssr/app_social_page_0h7zxda.js +1 -2
- package/.next/standalone/.next/server/chunks/ssr/lib_0i8v-s3._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/lib_13rapwj._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/lib_galaxy-lab_108_lu-.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/03bziijw5srol.js +1 -0
- package/.next/standalone/.next/static/chunks/0bgq8wmopl_ig.js +7 -0
- package/.next/standalone/.next/static/chunks/0ezus6p2eb-vg.js +1 -0
- package/.next/standalone/.next/static/chunks/0g_fy2034bp0x.js +34 -0
- package/.next/standalone/.next/static/chunks/0q5dru4q6gxl5.js +22 -0
- package/.next/standalone/.next/static/chunks/0w-byiwb2zax8.js +2 -0
- package/.next/standalone/.next/static/chunks/1g7jcovdejc9-.js +1 -0
- package/.next/standalone/.next/static/chunks/1i51yylxdzht1.js +1 -0
- package/.next/standalone/.next/static/chunks/1zf8swaasjf1e.js +43 -0
- package/.next/standalone/.next/static/chunks/2rqtpccruavf2.js +1 -0
- package/.next/standalone/.next/static/chunks/2wgz9ietkqqe6.js +1 -0
- package/.next/standalone/.next/static/chunks/30x3oq_st7a5r.js +1 -0
- package/.next/standalone/.next/static/chunks/355ryio1b7sm1.js +1 -0
- package/.next/standalone/.next/static/chunks/3ap5hgma7n0o7.js +1 -0
- package/.next/standalone/.next/static/chunks/3fci6qi39-1n5.js +1 -0
- package/.next/standalone/.next/static/chunks/{24tvdun1cb3g1.js → 3sowbvbaj1s6n.js} +1 -1
- package/.next/standalone/CHANGELOG.md +187 -0
- package/.next/standalone/app/api/ingest/route.js +40 -1
- package/.next/standalone/app/api/scraper/route.js +7 -1
- package/.next/standalone/app/api/settings/sector-preview/route.js +2 -1
- package/.next/standalone/app/components/AppTabs.js +59 -0
- package/.next/standalone/app/components/ChainView.js +303 -89
- package/.next/standalone/app/components/CirclePanel.js +162 -0
- package/.next/standalone/app/components/CompanyScores.js +2 -2
- package/.next/standalone/app/components/FieldStep.js +4 -4
- package/.next/standalone/app/components/FilterPanel.js +121 -183
- package/.next/standalone/app/components/ForceGraph.js +41 -3
- package/.next/standalone/app/components/GalaxyLab.js +26 -31
- package/.next/standalone/app/components/LegacyScoresCard.js +2 -2
- package/.next/standalone/app/components/MapControls.js +154 -0
- package/.next/standalone/app/components/NoteDetail.js +118 -0
- package/.next/standalone/app/components/PathsAnalyzer.js +147 -110
- package/.next/standalone/app/components/PeopleMap.js +308 -0
- package/.next/standalone/app/components/ScanRadar.js +129 -0
- package/.next/standalone/app/components/ScanStatusBar.js +71 -27
- package/.next/standalone/app/components/SeparationView.js +626 -118
- package/.next/standalone/app/components/Sidebar.js +28 -2
- package/.next/standalone/app/components/settings/NetworkHealthSection.js +1 -1
- package/.next/standalone/app/components/settings/SectorSection.js +2 -2
- package/.next/standalone/app/components/settings/TierSection.js +1 -1
- package/.next/standalone/app/components/settings/TitleSection.js +149 -0
- package/.next/standalone/app/components/views.js +15 -14
- package/.next/standalone/app/page.js +89 -156
- package/.next/standalone/app/paths/page.js +39 -27
- package/.next/standalone/app/profile/page.js +33 -5
- package/.next/standalone/app/queue/page.js +56 -34
- package/.next/standalone/app/scores/page.js +16 -66
- package/.next/standalone/app/settings/page.js +27 -13
- package/.next/standalone/app/setup/page.js +298 -205
- package/.next/standalone/app/social/SocialHub.js +374 -0
- package/.next/standalone/app/social/page.js +10 -362
- package/.next/standalone/lib/chain-layout.js +105 -35
- package/.next/standalone/lib/degrees.js +0 -6
- package/.next/standalone/lib/dot-rings.js +25 -0
- package/.next/standalone/lib/galaxy-lab.js +65 -6
- package/.next/standalone/lib/ingest.js +2 -0
- package/.next/standalone/lib/island.js +40 -0
- package/.next/standalone/lib/linkedin-limits.js +6 -2
- package/.next/standalone/lib/map-heat.js +20 -0
- package/.next/standalone/lib/network-health.js +1 -1
- package/.next/standalone/lib/notifications.js +121 -0
- package/.next/standalone/lib/people-map.js +82 -0
- package/.next/standalone/lib/rarity.js +45 -3
- package/.next/standalone/lib/reach.js +7 -6
- package/.next/standalone/lib/rpc.js +15 -4
- package/.next/standalone/lib/scan-pace.js +46 -0
- package/.next/standalone/lib/scoring.js +39 -8
- package/.next/standalone/lib/scraper-client.js +19 -6
- package/.next/standalone/lib/sector-focus.js +4 -4
- package/.next/standalone/lib/separation.js +137 -10
- package/.next/standalone/lib/settings-effects.js +20 -11
- package/.next/standalone/lib/settings.js +3 -0
- package/.next/standalone/lib/tier-grid.js +99 -0
- package/.next/standalone/lib/title-ranking.js +83 -0
- package/.next/standalone/package-lock.json +2 -2
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/scripts/scrape.py +51 -13
- package/.next/static/chunks/03bziijw5srol.js +1 -0
- package/.next/static/chunks/0bgq8wmopl_ig.js +7 -0
- package/.next/static/chunks/0ezus6p2eb-vg.js +1 -0
- package/.next/static/chunks/0g_fy2034bp0x.js +34 -0
- package/.next/static/chunks/0q5dru4q6gxl5.js +22 -0
- package/.next/static/chunks/0w-byiwb2zax8.js +2 -0
- package/.next/static/chunks/1g7jcovdejc9-.js +1 -0
- package/.next/static/chunks/1i51yylxdzht1.js +1 -0
- package/.next/static/chunks/1zf8swaasjf1e.js +43 -0
- package/.next/static/chunks/2rqtpccruavf2.js +1 -0
- package/.next/static/chunks/2wgz9ietkqqe6.js +1 -0
- package/.next/static/chunks/30x3oq_st7a5r.js +1 -0
- package/.next/static/chunks/355ryio1b7sm1.js +1 -0
- package/.next/static/chunks/3ap5hgma7n0o7.js +1 -0
- package/.next/static/chunks/3fci6qi39-1n5.js +1 -0
- package/.next/static/chunks/{24tvdun1cb3g1.js → 3sowbvbaj1s6n.js} +1 -1
- package/CHANGELOG.md +187 -0
- package/lib/chain-layout.js +105 -35
- package/lib/degrees.js +0 -6
- package/lib/dot-rings.js +25 -0
- package/lib/galaxy-lab.js +65 -6
- package/lib/ingest.js +2 -0
- package/lib/island.js +40 -0
- package/lib/linkedin-limits.js +6 -2
- package/lib/map-heat.js +20 -0
- package/lib/network-health.js +1 -1
- package/lib/notifications.js +121 -0
- package/lib/people-map.js +82 -0
- package/lib/rarity.js +45 -3
- package/lib/reach.js +7 -6
- package/lib/rpc.js +15 -4
- package/lib/scan-pace.js +46 -0
- package/lib/scoring.js +39 -8
- package/lib/scraper-client.js +19 -6
- package/lib/sector-focus.js +4 -4
- package/lib/separation.js +137 -10
- package/lib/settings-effects.js +20 -11
- package/lib/settings.js +3 -0
- package/lib/tier-grid.js +99 -0
- package/lib/title-ranking.js +83 -0
- package/package.json +1 -1
- package/scripts/scrape.py +51 -13
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__17hjtzl._.js +0 -8
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__20tmem7._.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_03i8xef.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_05gt5ya.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_08fc3rp.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_08r2t_q.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0btpv1t.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0c9d9ti.js +0 -8
- package/.next/standalone/.next/server/chunks/lib_rpc_0cm2ev3.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0iovswz.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0is8flp.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0v8ajtd.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0xgmvvt.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_144mzbf.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_1bggi0n.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_1dkcu9f.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_1o0jb6w.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0-85h6g._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_08cfj2b._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0c_y09g._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0j4-lc3._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0l8cxmo._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0xkur4p._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_14iv_zy._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_15x6q32._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_212xw8q._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_components_19c2d9c._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_scores_page_09wepvv.js +0 -3
- package/.next/standalone/.next/static/chunks/0a5iadnmt9u9k.js +0 -1
- package/.next/standalone/.next/static/chunks/15sjx07xhpn6p.js +0 -1
- package/.next/standalone/.next/static/chunks/160wjb73ddwqd.js +0 -6
- package/.next/standalone/.next/static/chunks/1a74dky22dxd6.js +0 -1
- package/.next/standalone/.next/static/chunks/1c_n0973t07l0.js +0 -2
- package/.next/standalone/.next/static/chunks/1e1n0kkz-psdb.js +0 -1
- package/.next/standalone/.next/static/chunks/236f0jtp68j_h.js +0 -1
- package/.next/standalone/.next/static/chunks/297e1z34yi--z.js +0 -1
- package/.next/standalone/.next/static/chunks/2_ak6qjxb6oa5.js +0 -1
- package/.next/standalone/.next/static/chunks/2kfhc58df2xyo.js +0 -1
- package/.next/standalone/.next/static/chunks/39hr8d-b2ibtw.js +0 -31
- package/.next/standalone/.next/static/chunks/3ui4d-uqkqj5d.js +0 -2
- package/.next/standalone/.next/static/chunks/3zw8bv7-mc4n6.js +0 -33
- package/.next/standalone/app/components/OrbitGraph.js +0 -737
- package/.next/static/chunks/0a5iadnmt9u9k.js +0 -1
- package/.next/static/chunks/15sjx07xhpn6p.js +0 -1
- package/.next/static/chunks/160wjb73ddwqd.js +0 -6
- package/.next/static/chunks/1a74dky22dxd6.js +0 -1
- package/.next/static/chunks/1c_n0973t07l0.js +0 -2
- package/.next/static/chunks/1e1n0kkz-psdb.js +0 -1
- package/.next/static/chunks/236f0jtp68j_h.js +0 -1
- package/.next/static/chunks/297e1z34yi--z.js +0 -1
- package/.next/static/chunks/2_ak6qjxb6oa5.js +0 -1
- package/.next/static/chunks/2kfhc58df2xyo.js +0 -1
- package/.next/static/chunks/39hr8d-b2ibtw.js +0 -31
- package/.next/static/chunks/3ui4d-uqkqj5d.js +0 -2
- package/.next/static/chunks/3zw8bv7-mc4n6.js +0 -33
- /package/.next/standalone/.next/static/{jqE2D3zWqSGz5su948Azf → I-cj79yE2IZ8taX2dZGp3}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{jqE2D3zWqSGz5su948Azf → I-cj79yE2IZ8taX2dZGp3}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{jqE2D3zWqSGz5su948Azf → I-cj79yE2IZ8taX2dZGp3}/_ssgManifest.js +0 -0
- /package/.next/static/{jqE2D3zWqSGz5su948Azf → I-cj79yE2IZ8taX2dZGp3}/_buildManifest.js +0 -0
- /package/.next/static/{jqE2D3zWqSGz5su948Azf → I-cj79yE2IZ8taX2dZGp3}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{jqE2D3zWqSGz5su948Azf → I-cj79yE2IZ8taX2dZGp3}/_ssgManifest.js +0 -0
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { useEffect, useMemo, useState } from 'react';
|
|
3
|
+
import { Suspense, useEffect, useMemo, useState } from 'react';
|
|
4
|
+
import { useSearchParams } from 'next/navigation';
|
|
5
|
+
import AppTabs from '../components/AppTabs';
|
|
6
|
+
import SocialHub from '../social/SocialHub';
|
|
7
|
+
import { setNotchTabs } from '../../lib/island';
|
|
4
8
|
import { loadNetwork } from '../../lib/network';
|
|
5
9
|
import { IS_DEMO } from '../../lib/demo';
|
|
6
10
|
import OutlinkQuest from '../components/OutlinkQuest';
|
|
@@ -34,9 +38,12 @@ function calculatePriority(person, sectors) {
|
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
export default function QueuePage() {
|
|
37
|
-
|
|
41
|
+
// useSearchParams (which view a link opens) needs a Suspense boundary to build.
|
|
42
|
+
return <Suspense fallback={null}><OnboardingGate><QueueInner /></OnboardingGate></Suspense>;
|
|
38
43
|
}
|
|
39
44
|
|
|
45
|
+
const VIEWS = ['quest', 'recs', 'pending', 'messages'];
|
|
46
|
+
|
|
40
47
|
function QueueInner() {
|
|
41
48
|
const { userId, userProfile: ctxProfile } = useUser();
|
|
42
49
|
const sectors = ctxProfile?.sectors || [];
|
|
@@ -51,7 +58,9 @@ function QueueInner() {
|
|
|
51
58
|
const [serverPending, setServerPending] = useState([]);
|
|
52
59
|
const [bridgeById, setBridgeById] = useState({});
|
|
53
60
|
// Circles is the game (lib/quest.js); the list and Pending are still here.
|
|
54
|
-
|
|
61
|
+
// Messages & follow-ups is Social, folded in (Blake, 2026-10-02); a link can open any view: /queue?view=messages.
|
|
62
|
+
const asked = useSearchParams().get('view');
|
|
63
|
+
const [view, setView] = useState(() => (VIEWS.includes(asked) ? asked : 'quest')); // quest | recs | pending | messages
|
|
55
64
|
const [added, setAdded] = useState([]);
|
|
56
65
|
const [mappedIds, setMappedIds] = useState(() => new Set());
|
|
57
66
|
// Whose circle can be scanned next, hidden lists known (lib/reach.js).
|
|
@@ -131,6 +140,21 @@ function QueueInner() {
|
|
|
131
140
|
return out;
|
|
132
141
|
}, [serverPending, recs, requests, bridgeById]);
|
|
133
142
|
|
|
143
|
+
// Circles, To add, Pending and Messages & follow-ups in the notch under the tabs.
|
|
144
|
+
useEffect(() => {
|
|
145
|
+
setNotchTabs({
|
|
146
|
+
items: [
|
|
147
|
+
{ key: 'quest', label: 'Circles' },
|
|
148
|
+
{ key: 'recs', label: `To add (${recs.length})` },
|
|
149
|
+
{ key: 'pending', label: `Pending (${pendingList.length})` },
|
|
150
|
+
{ key: 'messages', label: 'Messages & follow-ups' },
|
|
151
|
+
],
|
|
152
|
+
current: view,
|
|
153
|
+
onPick: setView,
|
|
154
|
+
});
|
|
155
|
+
return () => setNotchTabs(null);
|
|
156
|
+
}, [view, recs.length, pendingList.length]);
|
|
157
|
+
|
|
134
158
|
// Demo builds: this page is excluded from the public demo
|
|
135
159
|
if (IS_DEMO) {
|
|
136
160
|
return (
|
|
@@ -239,35 +263,25 @@ function QueueInner() {
|
|
|
239
263
|
fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
|
|
240
264
|
display: 'flex', flexDirection: 'column', overflow: 'hidden',
|
|
241
265
|
}}>
|
|
242
|
-
{/*
|
|
243
|
-
|
|
266
|
+
{/* The same header as every page: the app's tabs, Outlink lit. Circles, To add,
|
|
267
|
+
Pending and Messages & follow-ups sit in the notch under it. */}
|
|
268
|
+
<header style={{ padding: '20px 30px', borderBottom: '1px solid rgba(255,255,255,0.1)', flexShrink: 0 }}>
|
|
269
|
+
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: 12 }}>
|
|
270
|
+
<Link href="/" style={{ textDecoration: 'none' }}>
|
|
271
|
+
<h1 style={{ fontSize: 28, fontWeight: 700, margin: 0, background: 'linear-gradient(135deg, #FFD700, #9B59B6, #3498DB)', WebkitBackgroundClip: 'text', WebkitTextFillColor: 'transparent' }}>
|
|
272
|
+
Six Degrees
|
|
273
|
+
</h1>
|
|
274
|
+
</Link>
|
|
275
|
+
<AppTabs active="outlink" />
|
|
276
|
+
<Link href="/settings" title="Settings" aria-label="Settings" style={{
|
|
277
|
+
width: 32, height: 32, borderRadius: '50%', flexShrink: 0, background: 'rgba(255,255,255,0.06)', color: '#888',
|
|
278
|
+
fontSize: 16, textDecoration: 'none', display: 'flex', alignItems: 'center', justifyContent: 'center',
|
|
279
|
+
}}>⚙</Link>
|
|
280
|
+
</div>
|
|
281
|
+
</header>
|
|
282
|
+
{(view === 'recs' || view === 'pending') && (
|
|
283
|
+
<div style={{ padding: '10px 24px', borderBottom: '1px solid rgba(255,255,255,0.08)', flexShrink: 0 }}>
|
|
244
284
|
<div style={{ display: 'flex', alignItems: 'center', gap: 12, marginBottom: 10 }}>
|
|
245
|
-
<Link href="/" style={{
|
|
246
|
-
display: 'flex', alignItems: 'center', gap: 6, color: '#888', textDecoration: 'none',
|
|
247
|
-
fontSize: 13, fontWeight: 600, padding: '6px 14px', borderRadius: 6,
|
|
248
|
-
background: 'rgba(255,255,255,0.06)', border: '1px solid rgba(255,255,255,0.1)',
|
|
249
|
-
}}><span style={{ fontSize: 16 }}>←</span> Map</Link>
|
|
250
|
-
<h1 style={{
|
|
251
|
-
fontSize: 20, fontWeight: 700, margin: 0,
|
|
252
|
-
background: 'linear-gradient(135deg, #FF6B35, #FFD700)',
|
|
253
|
-
WebkitBackgroundClip: 'text', WebkitTextFillColor: 'transparent',
|
|
254
|
-
}}>Outlink</h1>
|
|
255
|
-
{/* View toggle: Recommendations vs Pending */}
|
|
256
|
-
<div style={{ display: 'flex', gap: 2, background: 'rgba(255,255,255,0.06)', borderRadius: 6, padding: 2 }}>
|
|
257
|
-
<button onClick={() => setView('quest')} style={{
|
|
258
|
-
padding: '5px 12px', borderRadius: 4, border: 'none', fontSize: 11, fontWeight: 700, cursor: 'pointer',
|
|
259
|
-
background: view === 'quest' ? 'linear-gradient(135deg, #FFD700, #FF6B35)' : 'transparent', color: view === 'quest' ? '#000' : '#FFD700',
|
|
260
|
-
}}>Circles</button>
|
|
261
|
-
<button onClick={() => setView('recs')} style={{
|
|
262
|
-
padding: '5px 12px', borderRadius: 4, border: 'none', fontSize: 11, fontWeight: 600, cursor: 'pointer',
|
|
263
|
-
background: view === 'recs' ? '#fff' : 'transparent', color: view === 'recs' ? '#000' : '#888',
|
|
264
|
-
}}>To Add ({recs.length})</button>
|
|
265
|
-
<button onClick={() => setView('pending')} style={{
|
|
266
|
-
padding: '5px 12px', borderRadius: 4, border: 'none', fontSize: 11, fontWeight: 600, cursor: 'pointer',
|
|
267
|
-
background: view === 'pending' ? 'linear-gradient(135deg, #FF6B35, #FFD700)' : 'transparent',
|
|
268
|
-
color: view === 'pending' ? '#000' : '#FF6B35',
|
|
269
|
-
}}>Pending ({pendingList.length})</button>
|
|
270
|
-
</div>
|
|
271
285
|
<div style={{ marginLeft: 'auto', display: 'flex', gap: 6 }}>
|
|
272
286
|
{view === 'recs' && (<>
|
|
273
287
|
<button onClick={() => setGroupBy('tier')} style={{
|
|
@@ -286,7 +300,7 @@ function QueueInner() {
|
|
|
286
300
|
</div>
|
|
287
301
|
</div>
|
|
288
302
|
{/* Filters (the list's; the Circles game has its own order) */}
|
|
289
|
-
<div style={{ display:
|
|
303
|
+
<div style={{ display: 'flex', gap: 6 }}>
|
|
290
304
|
{[
|
|
291
305
|
{ k: 'all', l: `All (${recs.length})` },
|
|
292
306
|
{ k: 'S', l: `S (${tierCounts.S})`, c: TIER_COLORS.S },
|
|
@@ -300,7 +314,15 @@ function QueueInner() {
|
|
|
300
314
|
}}>{f.l}</button>
|
|
301
315
|
))}
|
|
302
316
|
</div>
|
|
303
|
-
</
|
|
317
|
+
</div>
|
|
318
|
+
)}
|
|
319
|
+
|
|
320
|
+
{/* Messages & follow-ups: Social, inside Outlink */}
|
|
321
|
+
{view === 'messages' && (
|
|
322
|
+
<div style={{ flex: 1, overflow: 'auto', padding: '40px 8px 0' }}>
|
|
323
|
+
<SocialHub embedded />
|
|
324
|
+
</div>
|
|
325
|
+
)}
|
|
304
326
|
|
|
305
327
|
{/* Batch action bar — recs view only */}
|
|
306
328
|
{view === 'recs' && selected.size > 0 && (
|
|
@@ -338,7 +360,7 @@ function QueueInner() {
|
|
|
338
360
|
)}
|
|
339
361
|
|
|
340
362
|
{/* Scrollable list */}
|
|
341
|
-
{view
|
|
363
|
+
{(view === 'recs' || view === 'pending') && (
|
|
342
364
|
<div style={{ flex: 1, overflow: 'auto', padding: '12px 24px' }}>
|
|
343
365
|
<div style={{ maxWidth: 700, margin: '0 auto' }}>
|
|
344
366
|
|
|
@@ -1,75 +1,25 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
// Scores
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
// app/paths/page.js).
|
|
3
|
+
// Scores had a tab of its own from 2026-09-28 to 2026-10-02. It now lives in
|
|
4
|
+
// Settings (Blake, 2026-10-02: "moving scores into settings"), and network
|
|
5
|
+
// health in Profile → Insights. Old links land in the right place:
|
|
6
|
+
// /scores#sector, #tiers and #companies go to the same place in Settings;
|
|
7
|
+
// /scores#health goes to Insights.
|
|
9
8
|
|
|
10
|
-
import {
|
|
9
|
+
import { useEffect } from 'react';
|
|
11
10
|
import Link from 'next/link';
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import TierSection from '../components/settings/TierSection';
|
|
15
|
-
import NetworkHealthSection from '../components/settings/NetworkHealthSection';
|
|
16
|
-
import CompanyScores from '../components/CompanyScores';
|
|
17
|
-
import { Body, LINE, FONT } from '../components/ui';
|
|
18
|
-
import { IS_DEMO } from '../../lib/demo';
|
|
19
|
-
|
|
20
|
-
export default function ScoresPage() {
|
|
21
|
-
return <OnboardingGate><ScoresInner /></OnboardingGate>;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const jump = { color: '#3498DB', textDecoration: 'none', fontWeight: 600 };
|
|
25
|
-
|
|
26
|
-
function ScoresInner() {
|
|
27
|
-
// Saving your sector or tiers rescores everyone; the company list below reads
|
|
28
|
-
// its scores again when this changes.
|
|
29
|
-
const [saves, setSaves] = useState(0);
|
|
30
|
-
const saved = () => setSaves((n) => n + 1);
|
|
31
|
-
if (IS_DEMO) {
|
|
32
|
-
return (
|
|
33
|
-
<div style={{
|
|
34
|
-
minHeight: '100vh', background: '#0a0a1a', color: 'rgba(255,255,255,0.7)',
|
|
35
|
-
display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center',
|
|
36
|
-
gap: 12, textAlign: 'center', padding: 24, fontFamily: FONT,
|
|
37
|
-
}}>
|
|
38
|
-
<h2 style={{ margin: 0, fontSize: 20, fontWeight: 700, color: '#fff' }}>Not part of the demo</h2>
|
|
39
|
-
<p style={{ margin: 0, fontSize: 13 }}>The public demo includes the Network Circle and Degrees views only.</p>
|
|
40
|
-
<Link href="/" style={{ fontSize: 12, color: 'rgba(255,255,255,0.5)', textDecoration: 'none' }}>← Back to the network</Link>
|
|
41
|
-
</div>
|
|
42
|
-
);
|
|
43
|
-
}
|
|
11
|
+
import { useRouter } from 'next/navigation';
|
|
12
|
+
import { FONT } from '../components/ui';
|
|
44
13
|
|
|
14
|
+
export default function ScoresMoved() {
|
|
15
|
+
const router = useRouter();
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
const at = window.location.hash;
|
|
18
|
+
router.replace(at === '#health' ? '/profile?view=insights' : `/settings${at || '#scoring'}`);
|
|
19
|
+
}, [router]);
|
|
45
20
|
return (
|
|
46
|
-
<div style={{ minHeight: '100vh', background: '#0a0a1a', color: '#
|
|
47
|
-
<
|
|
48
|
-
<Link href="/" style={{
|
|
49
|
-
display: 'flex', alignItems: 'center', gap: 6, color: '#888', textDecoration: 'none',
|
|
50
|
-
fontSize: 13, fontWeight: 600, padding: '6px 14px', borderRadius: 6,
|
|
51
|
-
background: 'rgba(255,255,255,0.06)', border: LINE,
|
|
52
|
-
}}>← Back to Map</Link>
|
|
53
|
-
<h1 style={{
|
|
54
|
-
fontSize: 22, fontWeight: 700, margin: 0,
|
|
55
|
-
background: 'linear-gradient(135deg, #FFD700, #9B59B6, #3498DB)',
|
|
56
|
-
WebkitBackgroundClip: 'text', WebkitTextFillColor: 'transparent',
|
|
57
|
-
}}>Scores</h1>
|
|
58
|
-
</header>
|
|
59
|
-
<main style={{ maxWidth: 980, margin: '0 auto', padding: '8px 24px 64px' }}>
|
|
60
|
-
<Body style={{ marginTop: 16 }}>
|
|
61
|
-
How someone’s power score is worked out, and the three things you can change about it:{' '}
|
|
62
|
-
<a href="#sector" style={jump}>your field</a>, <a href="#tiers" style={jump}>how tiers are graded</a> and{' '}
|
|
63
|
-
<a href="#companies" style={jump}>any company’s score</a>. A change here rescores everyone.
|
|
64
|
-
{' '}First, <a href="#health" style={jump}>how your network holds together</a>.
|
|
65
|
-
</Body>
|
|
66
|
-
<NetworkHealthSection />
|
|
67
|
-
<SectorSection onSaved={saved} />
|
|
68
|
-
<TierSection onSaved={saved} />
|
|
69
|
-
<div id="companies" style={{ marginTop: 28 }}>
|
|
70
|
-
<CompanyScores version={saves} />
|
|
71
|
-
</div>
|
|
72
|
-
</main>
|
|
21
|
+
<div style={{ minHeight: '100vh', background: '#0a0a1a', color: '#aab', fontFamily: FONT, display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: 13 }}>
|
|
22
|
+
Scores are in <Link href="/settings#scoring" style={{ color: '#3498DB', marginLeft: 4 }}>Settings</Link> now.
|
|
73
23
|
</div>
|
|
74
24
|
);
|
|
75
25
|
}
|
|
@@ -2,10 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
import { useEffect, useState } from 'react';
|
|
4
4
|
import Link from 'next/link';
|
|
5
|
-
import { useRouter } from 'next/navigation';
|
|
6
5
|
import OnboardingGate from '../components/OnboardingGate';
|
|
7
6
|
import UpdatePanel from '../components/UpdatePanel';
|
|
8
7
|
import DataSection from '../components/settings/DataSection';
|
|
8
|
+
import SectorSection from '../components/settings/SectorSection';
|
|
9
|
+
import TierSection from '../components/settings/TierSection';
|
|
10
|
+
import TitleSection from '../components/settings/TitleSection';
|
|
11
|
+
import CompanyScores from '../components/CompanyScores';
|
|
9
12
|
import { Section, Body, Mono, LINE, FONT } from '../components/ui';
|
|
10
13
|
import { IS_DEMO } from '../../lib/demo';
|
|
11
14
|
|
|
@@ -13,6 +16,11 @@ import { IS_DEMO } from '../../lib/demo';
|
|
|
13
16
|
// and the facts about this copy. Each feature adds its own <Section>; what the
|
|
14
17
|
// user chooses is saved in the database (lib/settings.js), so it travels with
|
|
15
18
|
// their data.
|
|
19
|
+
//
|
|
20
|
+
// Scores live here again (Blake, 2026-10-02: "moving scores into settings"):
|
|
21
|
+
// your field, how tiers are graded and every company's score. They had a tab
|
|
22
|
+
// of their own (app/scores), which now forwards here; network health went to
|
|
23
|
+
// Profile → Insights.
|
|
16
24
|
|
|
17
25
|
export default function SettingsPage() {
|
|
18
26
|
return <OnboardingGate><SettingsInner /></OnboardingGate>;
|
|
@@ -28,13 +36,9 @@ const KIND_LABEL = {
|
|
|
28
36
|
function SettingsInner() {
|
|
29
37
|
const [info, setInfo] = useState(null);
|
|
30
38
|
const [error, setError] = useState(null);
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
useEffect(() => {
|
|
35
|
-
const at = window.location.hash;
|
|
36
|
-
if (at === '#sector' || at === '#tiers') router.replace(`/scores${at}`);
|
|
37
|
-
}, [router]);
|
|
39
|
+
// Saving your field or tiers rescores everyone; the company list reads its scores again when this changes.
|
|
40
|
+
const [saves, setSaves] = useState(0);
|
|
41
|
+
const saved = () => setSaves((n) => n + 1);
|
|
38
42
|
|
|
39
43
|
useEffect(() => {
|
|
40
44
|
fetch('/api/settings')
|
|
@@ -74,16 +78,26 @@ function SettingsInner() {
|
|
|
74
78
|
}}>Settings</h1>
|
|
75
79
|
</header>
|
|
76
80
|
|
|
77
|
-
<main style={{ maxWidth:
|
|
81
|
+
<main style={{ maxWidth: 980, margin: '0 auto', padding: '8px 24px 64px' }}>
|
|
78
82
|
{error && <Body style={{ color: '#ff7676', marginTop: 16 }}>{error}</Body>}
|
|
79
83
|
|
|
80
84
|
<UpdatePanel />
|
|
81
|
-
<Section id="scoring" title="
|
|
85
|
+
<Section id="scoring" title="Scores">
|
|
82
86
|
<Body>
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
<
|
|
87
|
+
How someone’s power score is worked out, and the four things you can change about it:{' '}
|
|
88
|
+
<a href="#sector" style={{ color: '#3498DB', textDecoration: 'none', fontWeight: 600 }}>your field</a>,{' '}
|
|
89
|
+
<a href="#tiers" style={{ color: '#3498DB', textDecoration: 'none', fontWeight: 600 }}>how tiers are graded</a>,{' '}
|
|
90
|
+
<a href="#titles" style={{ color: '#3498DB', textDecoration: 'none', fontWeight: 600 }}>how titles rank</a> and{' '}
|
|
91
|
+
<a href="#companies" style={{ color: '#3498DB', textDecoration: 'none', fontWeight: 600 }}>any company’s score</a>.
|
|
92
|
+
A change here rescores everyone. How your network holds together is in{' '}
|
|
93
|
+
<Link href="/profile?view=insights" style={{ color: '#3498DB', textDecoration: 'none', fontWeight: 600 }}>Profile → Insights</Link>.
|
|
86
94
|
</Body>
|
|
95
|
+
<SectorSection onSaved={saved} />
|
|
96
|
+
<TierSection onSaved={saved} />
|
|
97
|
+
<TitleSection onSaved={saved} />
|
|
98
|
+
<div id="companies" style={{ marginTop: 28 }}>
|
|
99
|
+
<CompanyScores version={saves} />
|
|
100
|
+
</div>
|
|
87
101
|
</Section>
|
|
88
102
|
<DataSection />
|
|
89
103
|
|