|
@@ -20,7 +20,6 @@ import { usePermissionsContext } from '@/features/ide-react/context/permissions-
|
|
|
|
|
|
|
|
export type TrackChangesState = {
|
|
export type TrackChangesState = {
|
|
|
onForEveryone: boolean
|
|
onForEveryone: boolean
|
|
|
- onForGuests: boolean
|
|
|
|
|
onForMembers: Record<UserId, boolean | undefined>
|
|
onForMembers: Record<UserId, boolean | undefined>
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -31,7 +30,6 @@ export const TrackChangesStateContext = createContext<
|
|
|
type SaveTrackChangesRequestBody = {
|
|
type SaveTrackChangesRequestBody = {
|
|
|
on?: boolean
|
|
on?: boolean
|
|
|
on_for?: Record<UserId, boolean | undefined>
|
|
on_for?: Record<UserId, boolean | undefined>
|
|
|
- on_for_guests?: boolean
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
type TrackChangesStateActions = {
|
|
type TrackChangesStateActions = {
|
|
@@ -62,22 +60,20 @@ export const TrackChangesStateProvider: FC<React.PropsWithChildren> = ({
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
setWantTrackChanges(
|
|
setWantTrackChanges(
|
|
|
trackChangesValue === true ||
|
|
trackChangesValue === true ||
|
|
|
- (trackChangesValue !== false &&
|
|
|
|
|
- trackChangesValue[user.id ?? '__guests__'])
|
|
|
|
|
|
|
+ (trackChangesValue !== false && !!user.id && trackChangesValue[user.id])
|
|
|
)
|
|
)
|
|
|
}, [setWantTrackChanges, trackChangesValue, user.id])
|
|
}, [setWantTrackChanges, trackChangesValue, user.id])
|
|
|
|
|
|
|
|
const trackChangesIsObject =
|
|
const trackChangesIsObject =
|
|
|
trackChangesValue !== true && trackChangesValue !== false
|
|
trackChangesValue !== true && trackChangesValue !== false
|
|
|
const onForEveryone = trackChangesValue === true
|
|
const onForEveryone = trackChangesValue === true
|
|
|
- const onForGuests =
|
|
|
|
|
- onForEveryone ||
|
|
|
|
|
- (trackChangesIsObject && trackChangesValue.__guests__ === true)
|
|
|
|
|
|
|
|
|
|
const onForMembers = useMemo(() => {
|
|
const onForMembers = useMemo(() => {
|
|
|
const onForMembers: Record<UserId, boolean | undefined> = {}
|
|
const onForMembers: Record<UserId, boolean | undefined> = {}
|
|
|
if (trackChangesIsObject) {
|
|
if (trackChangesIsObject) {
|
|
|
for (const key of Object.keys(trackChangesValue)) {
|
|
for (const key of Object.keys(trackChangesValue)) {
|
|
|
|
|
+ // TODO: Remove this check when we have converted
|
|
|
|
|
+ // all projects to the current format.
|
|
|
if (key !== '__guests__') {
|
|
if (key !== '__guests__') {
|
|
|
onForMembers[key as UserId] = trackChangesValue[key as UserId]
|
|
onForMembers[key as UserId] = trackChangesValue[key as UserId]
|
|
|
}
|
|
}
|
|
@@ -145,8 +141,8 @@ export const TrackChangesStateProvider: FC<React.PropsWithChildren> = ({
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
const value = useMemo(
|
|
const value = useMemo(
|
|
|
- () => ({ onForEveryone, onForGuests, onForMembers }),
|
|
|
|
|
- [onForEveryone, onForGuests, onForMembers]
|
|
|
|
|
|
|
+ () => ({ onForEveryone, onForMembers }),
|
|
|
|
|
+ [onForEveryone, onForMembers]
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
return (
|
|
return (
|