Skip to content

Commit

Permalink
Fixing some type errors in app #2 (#9637)
Browse files Browse the repository at this point in the history
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
  • Loading branch information
paescuj and rijkvanzanten committed Dec 1, 2021
1 parent c165928 commit d4ec4a9
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 16 deletions.
10 changes: 5 additions & 5 deletions app/src/composables/use-permissions.ts
Expand Up @@ -54,9 +54,9 @@ export function usePermissions(collection: Ref<string>, item: Ref<any>, isNew: R

if (!permissions) return fields;

if (permissions?.fields?.includes('*') === false) {
if (permissions.fields?.includes('*') === false) {
fields = fields.map((field: Field) => {
if (permissions.fields.includes(field.field) === false) {
if (permissions.fields?.includes(field.field) === false) {
field.meta = {
...(field.meta || {}),
readonly: true,
Expand All @@ -67,12 +67,12 @@ export function usePermissions(collection: Ref<string>, item: Ref<any>, isNew: R
});
}

if (permissions?.presets) {
if (permissions.presets) {
fields = fields.map((field: Field) => {
if (field.field in permissions.presets) {
if (field.field in permissions.presets!) {
field.schema = {
...(field.schema || {}),
default_value: permissions.presets[field.field],
default_value: permissions.presets![field.field],
} as any;
}

Expand Down
2 changes: 1 addition & 1 deletion app/src/displays/translations/index.ts
Expand Up @@ -103,7 +103,7 @@ export default defineDisplay({
fields.push(translationsPrimaryKeyField.field);
}

if (languagesRelation?.field && !fields.includes(languagesRelation.field)) {
if (languagesRelation && languagesPrimaryKeyField && !fields.includes(languagesRelation.field)) {
fields.push(`${languagesRelation.field}.${languagesPrimaryKeyField.field}`);

if (options?.languageField) {
Expand Down
12 changes: 6 additions & 6 deletions app/src/layouts/map/index.ts
Expand Up @@ -11,7 +11,7 @@ import { layers as directusLayers } from './style';
import { useRouter } from 'vue-router';
import { useSync } from '@directus/shared/composables';
import { LayoutOptions, LayoutQuery } from './types';
import { Filter } from '@directus/shared/types';
import { Filter, Item } from '@directus/shared/types';
import { useCollection } from '@directus/shared/composables';
import { useItems } from '@directus/shared/composables';
import { getFieldsFromTemplate } from '@directus/shared/utils';
Expand Down Expand Up @@ -225,20 +225,20 @@ export default defineLayout<LayoutOptions, LayoutQuery>({
});
}

function setSelection(ids: Array<string | number>) {
selection.value = ids;
function setSelection(ids: Item[]) {
selection.value = Array.from(new Set(ids));
}

function pushSelection(ids: Array<string | number>) {
function pushSelection(ids: Item[]) {
selection.value = Array.from(new Set(selection.value.concat(ids)));
}

function handleSelect({ ids, replace }: { ids: Array<string | number>; replace: boolean }) {
function handleSelect({ ids, replace }: { ids: Item[]; replace: boolean }) {
if (replace) setSelection(ids);
else pushSelection(ids);
}

function handleClick({ id, replace }: { id: string | number; replace: boolean }) {
function handleClick({ id, replace }: { id: Item; replace: boolean }) {
if (props.selectMode) {
handleSelect({ ids: [id], replace });
} else {
Expand Down
3 changes: 3 additions & 0 deletions app/src/stores/fields.ts
Expand Up @@ -283,6 +283,9 @@ export const useFieldsStore = defineStore({
if (relation === undefined) return false;

const relatedCollection = relation.field === field ? relation.related_collection : relation.collection;

if (relatedCollection === null) return false;

const relatedField = path.join('.');
return this.getField(relatedCollection, relatedField);
},
Expand Down
4 changes: 2 additions & 2 deletions app/src/utils/add-related-primary-key-to-fields.ts
Expand Up @@ -28,9 +28,9 @@ export function addRelatedPrimaryKeyToFields(currentCollection: string, fields:
const field = fieldsStore.getField(currentCollection, fieldName);
const primaryKeyField = fieldsStore.getPrimaryKeyFieldForCollection(field?.collection ?? '');

const includeField = fieldParts.slice(0, -1).concat(primaryKeyField.field).join('.');
const includeField = primaryKeyField && fieldParts.slice(0, -1).concat(primaryKeyField.field).join('.');

if (!sanitizedFields.includes(includeField)) {
if (includeField && !sanitizedFields.includes(includeField)) {
sanitizedFields.push(includeField);
}
}
Expand Down
5 changes: 3 additions & 2 deletions app/src/utils/get-setting.ts
@@ -1,7 +1,8 @@
import { useSettingsStore } from '@/stores';
import { Settings } from '@directus/shared/types';

export default function getSetting(setting: string): any {
export default function getSetting(setting: keyof Settings): any {
const settingsStore = useSettingsStore();
if (settingsStore.settings && setting in settingsStore.settings) return settingsStore.settings[setting];
if (settingsStore.settings) return settingsStore.settings[setting];
return null;
}

0 comments on commit d4ec4a9

Please sign in to comment.