Skip to content

Commit

Permalink
refactor log menu as function component
Browse files Browse the repository at this point in the history
  • Loading branch information
yang991178 committed Mar 3, 2025
1 parent 5ecf189 commit 759d60b
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 77 deletions.
2 changes: 1 addition & 1 deletion src/components/context-menu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -538,7 +538,7 @@ function GroupContextMenu() {

function MarkReadContextMenu() {
const dispatch = useAppDispatch()

const menuItems: IContextualMenuItem[] = [
{
key: "section_1",
Expand Down
101 changes: 47 additions & 54 deletions src/components/log-menu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,10 @@ import {
DirectionalHint,
Link,
} from "@fluentui/react"
import { AppLog, AppLogType } from "../scripts/models/app"
import { AppLog, AppLogType, toggleLogMenu } from "../scripts/models/app"
import Time from "./utils/time"

type LogMenuProps = {
display: boolean
logs: AppLog[]
close: () => void
showItem: (iid: number) => void
}
import { useAppDispatch, useAppSelector } from "../scripts/reducer"
import { showItemFromId } from "../scripts/models/page"

function getLogIcon(log: AppLog) {
switch (log.type) {
Expand All @@ -28,58 +23,56 @@ function getLogIcon(log: AppLog) {
}
}

class LogMenu extends React.Component<LogMenuProps> {
activityItems = () =>
this.props.logs
.map((l, i) => ({
key: i,
activityDescription: l.iid ? (
<b>
<Link onClick={() => this.handleArticleClick(l)}>
{l.title}
</Link>
</b>
) : (
<b>{l.title}</b>
),
comments: l.details,
activityIcon: <Icon iconName={getLogIcon(l)} />,
timeStamp: <Time date={l.time} />,
}))
.reverse()
function LogMenu() {
const dispatch = useAppDispatch()
const { display, logs } = useAppSelector(state => state.app.logMenu)

handleArticleClick = (log: AppLog) => {
this.props.close()
this.props.showItem(log.iid)
}

render() {
return (
this.props.display && (
<Callout
target="#log-toggle"
role="log-menu"
directionalHint={DirectionalHint.bottomCenter}
calloutWidth={320}
calloutMaxHeight={240}
onDismiss={this.props.close}>
{this.props.logs.length == 0 ? (
<p style={{ textAlign: "center" }}>
{intl.get("log.empty")}
</p>
) : (
this.activityItems().map(item => (
return (
display && (
<Callout
target="#log-toggle"
role="log-menu"
directionalHint={DirectionalHint.bottomCenter}
calloutWidth={320}
calloutMaxHeight={240}
onDismiss={() => dispatch(toggleLogMenu())}>
{logs.length == 0 ? (
<p style={{ textAlign: "center" }}>
{intl.get("log.empty")}
</p>
) : (
logs
.map((l, i) => (
<ActivityItem
{...item}
key={item.key}
activityDescription={
l.iid ? (
<b>
<Link
onClick={() => {
dispatch(toggleLogMenu())
dispatch(
showItemFromId(l.iid)
)
}}>
{l.title}
</Link>
</b>
) : (
<b>{l.title}</b>
)
}
comments={l.details}
activityIcon={<Icon iconName={getLogIcon(l)} />}
timeStamp={<Time date={l.time} />}
key={i}
style={{ margin: 12 }}
/>
))
)}
</Callout>
)
.reverse()
)}
</Callout>
)
}
)
}

export default LogMenu
4 changes: 2 additions & 2 deletions src/components/root.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import { closeContextMenu } from "../scripts/models/app"
import PageContainer from "../containers/page-container"
import MenuContainer from "../containers/menu-container"
import NavContainer from "../containers/nav-container"
import LogMenuContainer from "../containers/log-menu-container"
import SettingsContainer from "../containers/settings-container"
import { RootState } from "../scripts/reducer"
import { ContextMenu } from "./context-menu"
import LogMenu from "./log-menu"

const Root = ({ locale, dispatch }) =>
locale && (
Expand All @@ -17,7 +17,7 @@ const Root = ({ locale, dispatch }) =>
onMouseDown={() => dispatch(closeContextMenu())}>
<NavContainer />
<PageContainer />
<LogMenuContainer />
<LogMenu />
<MenuContainer />
<SettingsContainer />
<ContextMenu />
Expand Down
20 changes: 0 additions & 20 deletions src/containers/log-menu-container.tsx

This file was deleted.

0 comments on commit 759d60b

Please sign in to comment.