Merge branch 'main' of https://github.com/janhq/jan into framework

This commit is contained in:
0xSage 2024-01-08 15:07:43 +08:00
commit 358bc98137
3 changed files with 54 additions and 13 deletions

View File

@ -36,7 +36,7 @@ Our life-long mission is to **eliminate work - so human can focus on creation, i
### Ideal Customer
Our ideal customer is an AI enthusiast or business who has experienced some limitations with OpenAI, and is keen to find open source alternatives.
Our ideal customer is an AI enthusiast or business who has experienced some limitations with current AI solutions and is keen to find open source alternatives.
### Problems
@ -53,7 +53,7 @@ _Privacy_
- Data protection (e.g. personal data or company data)
- Privacy (e.g. nsfw)
_Customizability_
_Customisability_
- Tinkerability (e.g. ability to change model, experiment)
- Niche Models (e.g. fine-tuned, domain-specific models that outperform OpenAI)
@ -85,10 +85,11 @@ Jan is a startup with an open source business model. We believe in the need for
### Build in Public
We use Github to build in public, and welcome anyone to join in.
We use GitHub to build in public and welcome anyone to join in.
- [Jan's Kanban](https://github.com/orgs/janhq/projects/5)
- [Jan's Roadmap](https://github.com/orgs/janhq/projects/5/views/29)
- [Jan's Newsletter](https://newsletter.jan.ai)
### Bootstrapped
@ -98,7 +99,7 @@ We appreciate any business that can balance growth with cashflow/profitability.
### Remote Team
Jan has a fully-remote team. We are mainly based in the Asia timezone. We use [Discord](https://discord.gg/af6SaTdzpx) and [Github](https://github.com/janhq) to work.
Jan has a fully-remote team. We are mainly based in the APAC timezone. We use [Discord](https://discord.gg/af6SaTdzpx) and [Github](https://github.com/janhq) to work.
## Contact
@ -109,6 +110,7 @@ Drop us a message in our [Discord](https://discord.gg/af6SaTdzpx) and we'll get
- `#general`: for general discussion
- `#jan-dev`: for Jan-related questions
- `#nitro-dev`: for Nitro-related questions
- '#bd-inquiries': for enterprise license queries
### Careers

View File

@ -1,20 +1,22 @@
import { useState } from 'react'
import { getUserSpace, joinPath, openFileExplorer } from '@janhq/core'
import { useAtomValue, useSetAtom } from 'jotai'
import { useAtom, useAtomValue } from 'jotai'
import {
PanelLeftIcon,
PenSquareIcon,
PanelRightIcon,
MoreVerticalIcon,
FolderOpenIcon,
Code2Icon,
PanelLeftCloseIcon,
PanelRightCloseIcon,
} from 'lucide-react'
import { twMerge } from 'tailwind-merge'
import CommandSearch from '@/containers/Layout/TopBar/CommandSearch'
import { showLeftSideBarAtom } from '@/containers/Providers/KeyListener'
import { MainViewState } from '@/constants/screens'
import { useClickOutside } from '@/hooks/useClickOutside'
@ -31,7 +33,8 @@ const TopBar = () => {
const { mainViewState } = useMainViewState()
const { requestCreateNewThread } = useCreateNewThread()
const { assistants } = useGetAssistants()
const setShowRightSideBar = useSetAtom(showRightSideBarAtom)
const [showRightSideBar, setShowRightSideBar] = useAtom(showRightSideBarAtom)
const [showLeftSideBar, setShowLeftSideBar] = useAtom(showLeftSideBarAtom)
const showing = useAtomValue(showRightSideBarAtom)
const threadStates = useAtomValue(threadStatesAtom)
const [more, setMore] = useState(false)
@ -105,10 +108,16 @@ const TopBar = () => {
<div className="relative w-full">
<div className="absolute left-16 h-full w-60 border-r border-border">
<div className="flex h-full w-full items-center justify-between">
<div className="cursor-pointer">
<PanelLeftIcon
<div
className="unset-drag cursor-pointer"
onClick={() => setShowLeftSideBar((show) => !show)}
>
<PanelRightCloseIcon
size={20}
className="invisible text-muted-foreground"
className={twMerge(
'ml-4 text-muted-foreground',
showLeftSideBar && 'rotate-180'
)}
/>
</div>
<div
@ -196,7 +205,13 @@ const TopBar = () => {
className="unset-drag absolute right-4 cursor-pointer"
onClick={() => setShowRightSideBar((show) => !show)}
>
<PanelRightIcon size={20} className="text-muted-foreground" />
<PanelLeftCloseIcon
size={20}
className={twMerge(
'text-muted-foreground',
showRightSideBar && 'rotate-180'
)}
/>
</div>
</div>
)}

View File

@ -149,7 +149,7 @@ const Advanced = () => {
</p>
</div>
<Modal>
<ModalTrigger>
<ModalTrigger asChild>
<Button size="sm" themes="secondary">
Show
</Button>
@ -207,6 +207,30 @@ const Advanced = () => {
</div>
</div>
</div>
<div className="flex w-full gap-4 border-b border-border pb-2">
<div className="w-1/2">
<div className="py-2">
<ShortCut menu="B" />
</div>
</div>
<div className="w-full">
<div className="py-2">
<p>Toggle collapsible left panel</p>
</div>
</div>
</div>
<div className="flex w-full gap-4 border-b border-border pb-2">
<div className="w-1/2">
<div className="py-2">
<ShortCut menu="," />
</div>
</div>
<div className="w-full">
<div className="py-2">
<p>Navigate to setting page</p>
</div>
</div>
</div>
<div className="flex w-full gap-4 border-b border-border pb-2">
<div className="w-1/2">
<div className="py-2">