mirror of
https://github.com/kremalicious/umami.git
synced 2024-06-28 16:57:52 +02:00
Added more cache checks.
This commit is contained in:
parent
ef9f8ed816
commit
83fb358355
|
@ -5,14 +5,10 @@ import useFilterQuery from 'components/hooks/useFilterQuery';
|
||||||
import DataTable from 'components/common/DataTable';
|
import DataTable from 'components/common/DataTable';
|
||||||
import useCache from 'store/cache';
|
import useCache from 'store/cache';
|
||||||
|
|
||||||
function useReports() {
|
export default function ReportsDataTable() {
|
||||||
const { get } = useApi();
|
const { get } = useApi();
|
||||||
const modified = useCache(state => state?.reports);
|
const modified = useCache(state => state?.reports);
|
||||||
return useFilterQuery(['reports', modified], params => get(`/reports`, params));
|
const queryResult = useFilterQuery(['reports', { modified }], params => get(`/reports`, params));
|
||||||
}
|
|
||||||
|
|
||||||
export default function ReportsDataTable() {
|
|
||||||
const queryResult = useReports();
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<DataTable queryResult={queryResult}>
|
<DataTable queryResult={queryResult}>
|
||||||
|
|
|
@ -21,7 +21,7 @@ export function TeamJoinForm({ onSave, onClose }) {
|
||||||
const handleSubmit = async data => {
|
const handleSubmit = async data => {
|
||||||
mutate(data, {
|
mutate(data, {
|
||||||
onSuccess: async () => {
|
onSuccess: async () => {
|
||||||
setValue('teams', Date.now());
|
setValue('teams:members', Date.now());
|
||||||
onSave?.();
|
onSave?.();
|
||||||
onClose?.();
|
onClose?.();
|
||||||
},
|
},
|
||||||
|
|
|
@ -7,7 +7,7 @@ import useCache from 'store/cache';
|
||||||
|
|
||||||
export function TeamsDataTable() {
|
export function TeamsDataTable() {
|
||||||
const { get } = useApi();
|
const { get } = useApi();
|
||||||
const modified = useCache(state => state?.websites);
|
const modified = useCache(state => state?.teams);
|
||||||
const queryResult = useFilterQuery(['teams', { modified }], params => {
|
const queryResult = useFilterQuery(['teams', { modified }], params => {
|
||||||
return get(`/teams`, {
|
return get(`/teams`, {
|
||||||
...params,
|
...params,
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import useApi from 'components/hooks/useApi';
|
import useApi from 'components/hooks/useApi';
|
||||||
import useMessages from 'components/hooks/useMessages';
|
import useMessages from 'components/hooks/useMessages';
|
||||||
import { Icon, Icons, LoadingButton, Text } from 'react-basics';
|
import { Icon, Icons, LoadingButton, Text } from 'react-basics';
|
||||||
|
import { setValue } from 'store/cache';
|
||||||
|
|
||||||
export function TeamMemberRemoveButton({ teamId, userId, disabled, onSave }) {
|
export function TeamMemberRemoveButton({ teamId, userId, disabled, onSave }) {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
|
@ -12,7 +13,8 @@ export function TeamMemberRemoveButton({ teamId, userId, disabled, onSave }) {
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
onSave();
|
setValue('team:members', Date.now());
|
||||||
|
onSave?.();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,11 +2,13 @@ import useApi from 'components/hooks/useApi';
|
||||||
import TeamMembersTable from './TeamMembersTable';
|
import TeamMembersTable from './TeamMembersTable';
|
||||||
import useFilterQuery from 'components/hooks/useFilterQuery';
|
import useFilterQuery from 'components/hooks/useFilterQuery';
|
||||||
import DataTable from 'components/common/DataTable';
|
import DataTable from 'components/common/DataTable';
|
||||||
|
import useCache from 'store/cache';
|
||||||
|
|
||||||
export function TeamMembers({ teamId, readOnly }) {
|
export function TeamMembers({ teamId, readOnly }) {
|
||||||
const { get } = useApi();
|
const { get } = useApi();
|
||||||
|
const modified = useCache(state => state?.['team:members']);
|
||||||
const queryResult = useFilterQuery(
|
const queryResult = useFilterQuery(
|
||||||
['team:users', teamId],
|
['team:members', { teamId, modified }],
|
||||||
params => {
|
params => {
|
||||||
return get(`/teams/${teamId}/users`, {
|
return get(`/teams/${teamId}/users`, {
|
||||||
...params,
|
...params,
|
||||||
|
|
|
@ -4,7 +4,7 @@ import useUser from 'components/hooks/useUser';
|
||||||
import { ROLES } from 'lib/constants';
|
import { ROLES } from 'lib/constants';
|
||||||
import TeamMemberRemoveButton from './TeamMemberRemoveButton';
|
import TeamMemberRemoveButton from './TeamMemberRemoveButton';
|
||||||
|
|
||||||
export function TeamMembersTable({ data = [], teamId, readOnly, onChange }) {
|
export function TeamMembersTable({ data = [], teamId, readOnly }) {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
|
|
||||||
|
@ -24,9 +24,7 @@ export function TeamMembersTable({ data = [], teamId, readOnly, onChange }) {
|
||||||
return (
|
return (
|
||||||
!readOnly &&
|
!readOnly &&
|
||||||
row?.teamUser?.[0]?.role !== ROLES.teamOwner &&
|
row?.teamUser?.[0]?.role !== ROLES.teamOwner &&
|
||||||
user?.id !== row?.id && (
|
user?.id !== row?.id && <TeamMemberRemoveButton teamId={teamId} userId={row.id} />
|
||||||
<TeamMemberRemoveButton teamId={teamId} userId={row.id} onSave={onChange} />
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
</GridColumn>
|
</GridColumn>
|
||||||
|
|
|
@ -4,6 +4,7 @@ import { Button, Form, FormButtons, GridColumn, Loading, SubmitButton, Toggle }
|
||||||
import useMessages from 'components/hooks/useMessages';
|
import useMessages from 'components/hooks/useMessages';
|
||||||
import WebsitesDataTable from '../../websites/WebsitesDataTable';
|
import WebsitesDataTable from '../../websites/WebsitesDataTable';
|
||||||
import Empty from 'components/common/Empty';
|
import Empty from 'components/common/Empty';
|
||||||
|
import { setValue } from 'store/cache';
|
||||||
|
|
||||||
export function TeamWebsiteAddForm({ teamId, onSave, onClose }) {
|
export function TeamWebsiteAddForm({ teamId, onSave, onClose }) {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
|
@ -18,8 +19,9 @@ export function TeamWebsiteAddForm({ teamId, onSave, onClose }) {
|
||||||
{ websiteIds: selected },
|
{ websiteIds: selected },
|
||||||
{
|
{
|
||||||
onSuccess: async () => {
|
onSuccess: async () => {
|
||||||
onSave();
|
setValue('team:websites', Date.now());
|
||||||
onClose();
|
onSave?.();
|
||||||
|
onClose?.();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
@ -6,13 +6,15 @@ import useMessages from 'components/hooks/useMessages';
|
||||||
import useUser from 'components/hooks/useUser';
|
import useUser from 'components/hooks/useUser';
|
||||||
import useFilterQuery from 'components/hooks/useFilterQuery';
|
import useFilterQuery from 'components/hooks/useFilterQuery';
|
||||||
import DataTable from 'components/common/DataTable';
|
import DataTable from 'components/common/DataTable';
|
||||||
|
import useCache from 'store/cache';
|
||||||
|
|
||||||
export function TeamWebsites({ teamId }) {
|
export function TeamWebsites({ teamId }) {
|
||||||
const { formatMessage, labels, messages } = useMessages();
|
const { formatMessage, labels, messages } = useMessages();
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
const { get } = useApi();
|
const { get } = useApi();
|
||||||
|
const modified = useCache(state => state?.['team:websites']);
|
||||||
const queryResult = useFilterQuery(
|
const queryResult = useFilterQuery(
|
||||||
['team:websites', teamId],
|
['team:websites', { teamId, modified }],
|
||||||
params => {
|
params => {
|
||||||
return get(`/teams/${teamId}/websites`, {
|
return get(`/teams/${teamId}/websites`, {
|
||||||
...params,
|
...params,
|
||||||
|
|
|
@ -4,10 +4,12 @@ import useFilterQuery from 'components/hooks/useFilterQuery';
|
||||||
import DataTable from 'components/common/DataTable';
|
import DataTable from 'components/common/DataTable';
|
||||||
import UsersTable from './UsersTable';
|
import UsersTable from './UsersTable';
|
||||||
import UsersHeader from './UsersHeader';
|
import UsersHeader from './UsersHeader';
|
||||||
|
import useCache from 'store/cache';
|
||||||
|
|
||||||
export function UsersDataTable() {
|
export function UsersDataTable() {
|
||||||
const { get } = useApi();
|
const { get } = useApi();
|
||||||
const queryResult = useFilterQuery(['users'], params => {
|
const modified = useCache(state => state?.users);
|
||||||
|
const queryResult = useFilterQuery(['users', { modified }], params => {
|
||||||
return get(`/users`, {
|
return get(`/users`, {
|
||||||
...params,
|
...params,
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue
Block a user